想实现的功能是这样的,当用户单击网页中的登录按钮时自动提取出用户输入的帐号密码信息
第一步:首先获得用户在浏览器上的鼠标单击消息
这里可以用两种方法去实现,一个是用SetWindowsHookEx(),生成一个全局钩子(要在dll中,具体实现可以百度,因为本文采用的是另外一种方法),捕获WH_GETMESSAGE或者WH_MOUSEMOVE消息。
另一个用SetCapture获得捕获鼠标的窗口句柄,进而得到鼠标单击坐标点
下面是MFC中的SetCapture(也可以用API的SetCapture)
CWnd::SetCapture
CWnd* SetCapture( );
返回值:
原来接收所有鼠标输入的窗口的指针。如果没有这样的窗口,则返回值为NULL。返回的指针可能是临时的,不能被保存以供将来使用。
说明:
这个函数使随后的所有鼠标输入都被发送到当前的CWnd对象,并不考虑光标的位置。
当CWnd不再需要所有的鼠标输入时,应用程序应当调用ReleaseCapture函数以使其它窗口能够接收鼠标输入。
响应LBUTTONUP消息,获得鼠标点击信息
void CGetIhtmlDlg::OnLButtonUp(UINT nFlags, CPoint point)
{
if(m_bCapture){
m_bCapture=FALSE;
ReleaseCapture();
static TCHAR buf[100];
POINT pt;
GetCursorPos(&pt);
HWND hwnd=::WindowFromPoint(pt);
if(hwnd!=NULL){
::GetClassName( hwnd, (LPTSTR)&buf, 100 );
if ( _tcscmp( buf, _T("Internet Explorer_Server") ) == 0 )
{
POINT iept=pt;
IHTMLDocument2 *pDoc2=GetDocInterface(hwnd);
::ScreenToClient(hwnd