如何查找其它窗口中某個特定按鈕,並進行單擊操作(100分)

  • 主题发起人 主题发起人 macrochan
  • 开始时间 开始时间
M

macrochan

Unregistered / Unconfirmed
GUEST, unregistred user!
如何查找其它窗口中某個特定按鈕,並進行單擊操作
 
有高手可以指點一下嗎?
 
1.先寻找到窗口的句柄,用FindWindow <br>2.再寻找窗口内的指定按钮用.FindWindowEx<br>3.发送消息SendMessage(hwnd,BM_CLICK,0,0)
 
可不可以詳細一點,我寫了一段代碼如下:<br>procedure TFrm_Main.CloseWindow;<br>var<br> &nbsp;HWndCalc: HWND;<br> &nbsp;BtnHWND: HWND;<br>begin<br> &nbsp;HWndCalc := Findwindow(nil,'Microsoft Internet Explorer');<br> &nbsp;if HWndCalc &lt;&gt; 0 then<br> &nbsp;begin<br> &nbsp; &nbsp;BtnHWND := findwindowex(HWndCalc,0,'Tbutton', '取消');<br> &nbsp; &nbsp;SendMessage(BtnHWND,BM_CLICK,0,0);<br> &nbsp;end;<br>end;<br>為什么不能點擊“取消”按鈕?
 
晕,findwindow用法有错,具体我不记得,但至少窗口标题不对。浏览器标题可不是'Microsoft Internet Explorer'<br>自己搜索一下findwindow用法
 
findwindow 找的就是窗体的TITLE没错的,你好好看看IE的title
 
窗口是可以找到的,我用PostMessage(HWndCalc,WM_CLOSE,0,0);都可以把窗口關閉,但是用上述的方法就不行
 
ie的title不是这个哈,就是空白的也不是这个,自己打开一个ie看看就晓得了!
 
我用的是繁體的windowsxp,IE彈出的提示框的Title就是這樣的,沒錯,所以窗口是可以找到的,而且可以用PostMessage(HWndCalc,WM_CLOSE,0,0);來關閉,但如果要用BtnHWND := findwindowex(HWndCalc,0,'Tbutton', '取消');來找“取消”按鈕就找不到,我也不知道是什么回事?
 
你去www.2ccc.com下载一个软件来看看,关于鼠标钩子的,看看钩到的按钮是不是你说的.类就是tbutton嘛?如果不行,那就定位鼠标,然后模拟发送消息!
 
其實我也覺得的類搞錯了,但是我不知道那個按鈕是什么類的,可不可以在窗口所有組件做一個循環,直到找到“取消”按鈕為止?
 
你去下载我说的东西确认一下类,如果不知道,应该可以设置为空吧!
 
找到原因,類不對,謝謝各位。
 
后退
顶部