我想檢測每次我粘貼的東西。這只是讓一些數據輸入工作變得更簡單。 我設置了一個全局鉤子,然後「等待」wm_paste。這是我的代碼的一部分:WM_PASTE掛鉤不工作
LRESULT CALLBACK GetMsgProc(int nCode, WPARAM wParam, LPARAM lParam)
{
if(nCode < 0)//Do not process the message
return CallNextHookEx(msg_hook,nCode,wParam,lParam);
LPMSG m=(LPMSG)lParam;
if(m->message == WM_PASTE)
{
OutputString("Paste detected!\n");
}
if(m->message == WM_PASTE)
{
OutputString("Paste detected!\n");
}
return CallNextHookEx(msg_hook,nCode,wParam,lParam);
}
//DLL_ATTACH:
...
if(strstr(ProcName, LOADERNAME))
{
InitCommonControls();
if(!(msg_hook=SetWindowsHookEx(WH_GETMESSAGE, GetMsgProc, hinstDLL, 0)))
{
ErrorExit(TEXT("SetWindowsHookEx"));
//MessageBox(0, "WH_GETMESSAGE", 0, 0);
//return -1;
}
}
WM_PASTE調試字符串永遠不會被打印。我知道並非所有的應用程序都使用WM_PASTE。但至少記事本應該工作。
有什麼建議嗎? 謝謝!
的確,在這裏粘貼代碼時,我粘貼了代碼的舊版本,而不是帶有消息的代碼。 – Cornwell
不過,m-> message或m-> wParam不起作用。我在這裏錯過了什麼嗎? – Cornwell