如何读所在程序的最上面那个窗口的句柄?不能用FindWindow或FindWindowEX(100分)

  • 主题发起人 主题发起人 lanlyli
  • 开始时间 开始时间
L

lanlyli

Unregistered / Unconfirmed
GUEST, unregistred user!
不能用FindWindow或FindWindowEX的原因是因为那个窗口的CAPTION总是在变的而且没有任何规律。但是知道该窗口所在程序的主窗口句柄。<br>我写的代码如下:<br> &nbsp;w := FindWindowEx(0,0,0,'程序主窗口');<br> &nbsp;if w &lt;&gt; 0 then<br> &nbsp; &nbsp; &nbsp;result := GetTopWindow(m)<br><br>但是这样写不能读出最上面的窗口的句柄,请问是什么原因?
 
或者如何通过窗口CAPTION的前面几个字符(而不是完整的CAPTION)来获取窗口的HANDLE?
 
用这个试试 getactivewindow()函数试试
 
1.是要得到所有窗口的最上层窗口<br> 所有的窗口都是在桌面上的啊。那你应该用:GetDesktopWindow(); <br>2.是要得到Z Order顺序中的最上层(桌面最上面的窗口,一般是当前活动的窗口)<br> 那你应该用:GetTopWindow(); <br>3.得到桌面的前景窗口<br> 那你应该用:GetForegroundWindow();
 
我解决了。遍历<br>GetWindow(h, GW_HWNDFIRST);<br>GetWindow(hCurrentWindow, GW_HWNDNEXT);
 
多人接受答案了。
 
后退
顶部