我用sendmessage(HWndCalculator,wm_CLOSE,0,0)能能关闭另一个程序,但是用SendMessage(HWndCalculato

  • 主题发起人 主题发起人 zhbruce
  • 开始时间 开始时间
Z

zhbruce

Unregistered / Unconfirmed
GUEST, unregistred user!
我用sendmessage(HWndCalculator,wm_CLOSE,0,0)能能关闭另一个程序,但是用SendMessage(HWndCalculator,WM_KEYDOWN,VK_NEXT,0)却没有反应。 (100分)<br />有一个应用程序(不是我写的),其中有一个功能是只要按下键盘的PgUp和PgDn键就可以显示上一个数据或下一个数据。<br>&nbsp; 我现在想写一个程序模似PgDn键让那个应用程序显示下一个数据。<br>&nbsp;我用sendmessage(HWndCalculator,wm_CLOSE,0,0)能关闭这个应用程序.如下<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>HWndCalculator : HWnd;<br>begin<br>// find the exist calculator window<br>HWndCalculator := FindWindow(nil,'广发广州一 - 广发网上股票交易分析系统 V3.55'); // close the exist Calculator<br>if HWndCalculator &lt;&gt; 0 then<br>sendmessage(HWndCalculator,wm_keydown,22,0);//pagedown<br>end;<br>end.<br><br><br>但是我用SendMessage(HWndCalculator,WM_KEYDOWN,VK_NEXT,0)应用程序却没有反应。如下<br>procedure TForm1.Button1Click(Sender: TObject);<br>var<br>HWndCalculator : HWnd;<br>begin<br>// find the exist calculator window<br>HWndCalculator := FindWindow(nil,'广发广州一 - 广发网上股票交易分析系统 V3.55'); // close the exist Calculator<br>if HWndCalculator &lt;&gt; 0 then<br>sendmessage(HWndCalculator,wm_keydown,vk_next,0);//pagedown<br>end;<br>end.<br><br>请问如何解决这个问题<br>
 
HWndCalculator := FindWindow(nil,'广发广州一 - 广发网上股票交易分析系统 V3.55'); // close the exist <br><br>你要找到具体控件的handle,而不是窗体的handle
 
我用spy++看到这个应用程序的大进程下有几子窗口ClassName都是AfxFrameOrView42s,windows caption为空,但windows handle 不同,请问如何取得windows handle为000D0680子窗口的句柄?<br>&nbsp;
 
用FindWindowEx可以找到这个窗口中的具体的按键的handle。<br>比如要找一个Tedit的handle可以用FindWindowEx(hwnd1,0,'Tedit',0);<br>hwnd1为你主窗口的handle
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
D
回复
0
查看
837
DelphiTeacher的专栏
D
后退
顶部