我想利用WebBrowser模拟鼠标点击事件 实现自动填写一些数据
在一般的按钮(比如登录)中,都没啥问题,因为可以用IHTMLElement的click函数来完成,可是有个页面左侧有个树形控件,右侧是其它数据。通过点击树形控件,右侧会显示不同的数据。
现在我需要模拟树形控件上的点击过程,我采用GetSafeHwnd获得了WebBrowser的HWND,对其发送鼠标点击消息;消息是发送成功了,可是树形控件没有反应。
跟踪发现,当点击树形控件的时候,消息的句柄并非刚才获得的WebBrowser的句柄。我就纳闷了,这个WebBrowser的句柄怎么会有俩?通过正常手段(m_hWnd,GetSafeWnd)获得的倒是没用,另外一个句柄是怎么出现的?我们该如何获得?
在一般的按钮(比如登录)中,都没啥问题,因为可以用IHTMLElement的click函数来完成,可是有个页面左侧有个树形控件,右侧是其它数据。通过点击树形控件,右侧会显示不同的数据。
现在我需要模拟树形控件上的点击过程,我采用GetSafeHwnd获得了WebBrowser的HWND,对其发送鼠标点击消息;消息是发送成功了,可是树形控件没有反应。
跟踪发现,当点击树形控件的时候,消息的句柄并非刚才获得的WebBrowser的句柄。我就纳闷了,这个WebBrowser的句柄怎么会有俩?通过正常手段(m_hWnd,GetSafeWnd)获得的倒是没用,另外一个句柄是怎么出现的?我们该如何获得?
CFindWnd fwnd(m_WebBrowser.m_hWnd,"Internet Explorer_Server");
可惜的是向其发送事件 还是无效 最后用mouse_event模拟鼠标 搞定了
CPoint pt(11,12);
ClientToScreen(&pt);
SetCursorPos(pt.x,pt.y);
::mouse_event(MOUSEEVENTF_LEFTDOWN,0,0,0,0);
::mouse_event(MOUSEEVENTF_LEFTUP,0,0,0,0);
但要是能获取网页上的树形控件就好了