mfc初學,先前做了一個鍵盤改鍵,然后現在在做一個通過全域滑鼠鉤子,在exe里面能動態更新當前滑鼠坐標的小東西,看了很多文章翻了論壇總算寫完了,編譯也通過了,結果卻不能用。。。最好的一次能做到運行時的滑鼠坐標,然后就不更新了。。
用了sendmessage
這是滑鼠鉤子dll里面的代碼
LRESULT CALLBACK KeyboardProc(int nCode, WPARAM wparam, LPARAM lparam)
{
if (nCode == HC_ACTION) {
MSLLHOOKSTRUCT *pkbhs = (MSLLHOOKSTRUCT *)lparam;
SendMessage(glhWnd, WM_MYMSG, pkbhs->pt.x, pkbhs->pt.y);
}
return CallNextHookEx(glhHook, nCode, wparam, lparam); //繼續傳遞訊息
}
這是exe
LRESULT CGetMouseExeDlg::OnMYMSG(WPARAM wParam, LPARAM lParam)
{
CString str;
str.Format(_T("X:%d Y:%d", wParam, lParam)); //格式化滑鼠坐標點資訊并保存到CString型變數str中
GetDlgItem(IDC_EDIT1)->SetWindowText(str); //更新程式視窗Edit控制元件文本
return 1;
}
想讓大神看看還有咩有錯。。。
uj5u.com熱心網友回復:
百度搜相關關鍵字。uj5u.com熱心網友回復:
1: 鉤子是否安裝成功?安裝鉤子時的 dwThreadId 是否是0?2: if (nCode >= HC_ACTION) 在DLL中 OutputDebugString 輸出除錯資訊看看是否成功?
VC6 MSDN 中的例子中 包含完整的SPY++的原始碼 可以參考下
uj5u.com熱心網友回復:
加下log除錯到檔案中,看下鉤子是否能正常獲取滑鼠相關的事件通知,然后看看你的exe是否能正常接收你鉤子發送過來的訊息。轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/112554.html
標籤:進程/線程/DLL
