HOOK。另一個程式單擊某個按鈕時,彈出自己的對話方塊。
其實是半年來一直用VC做東西,而且只用VC6。因為與.Net沒什麼關係,所以不好意思到這裡灌了。。
近兩天在做個東西,主要目的是為方便一個MIS錄入人員照片。通過Camera SDK,實時採集。
今天先談談對另一個程式單擊某個按鈕時,彈出自己的對話方塊。
開始想用WH_CBT,在其彈出時攔截。後又想用WH_WINPROC。
能實現,但與我自己的目標:“單擊某個按鈕時。。”有點遠。
所以還是俗套:WH_MOUSE。
而目標程式想HOOK的按鈕是個DLL自繪STYLE,列舉不出,只好想辦法。
下面是MouseProc:
LRESULT CALLBACK MouseProc(int nCode, WPARAM wParam, LPARAM lParam)
{
{
RECT rc;
TCHAR buff[512];
MOUSEHOOKSTRUCT *pMouseHookParam = reinterpret_cast<MOUSEHOOKSTRUCT*>(lParam);
switch(wParam) { //滑鼠訊息case WM_LBUTTONUP: //用WM_LBUTTONDOWN也行,但不能看到單擊效果,感覺怪怪的。 GetWindowRect(pMouseHookParam
if (pMouseHookParam->pt.x>rc.right-46&&
ShowDlg();
return1; //不讓其彈出它自己的視窗,非0就行。 }
}
break;
default:
break;
}
}
return (CallNextHookEx(g_hook, nCode, wParam, lParam));
}
轉發 https://www.cnblogs.com/laoa/archive/2005/11/08/271768.html