1
下午好。我正在寫一個全局鼠標鉤子。一切似乎都工作得很好,除了只爲第一個鼠標事件調用掛鉤。 一些代碼:Windows掛鉤只被調用一次
// Dll defined function
extern "C" Q_DECL_EXPORT LRESULT MouseProc(int code, WPARAM wParam, LPARAM lParam)
{
qDebug() << "MouseProc";
return TRUE;
}
// Application code
...
hLib = LoadLibrary(TEXT("ServerHook.dll"));
HOOKPROC hookAddr = (HOOKPROC)GetProcAddress(hLib, "MouseProc");
if (!hookAddr) {
qDebug() << "Invalid hook proc " << GetLastError();
}
if ((WinInputHook::hookHandle = SetWindowsHookEx(
WH_MOUSE, hookAddr, hLib, 0))
== NULL) {
qDebug() << "Invalid hook handle " << GetLastError();
}
...
事實上你是對的。與此同時,情況並非如此,因爲對於重要事件,它也只處理一次。 – OneMoreVladimir
請注意,您的DLL不會被系統釋放。 – mox
我怎麼能做到這一點? DllCanUnloadNow? – OneMoreVladimir