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();
}
...
確かに、あなたは正しいです。それと同時に、それはそうではありません。なぜなら、主要な出来事のためには、それは1回だけであるからです。 – OneMoreVladimir
DLLがシステムから解放されないように注意してください。 – mox
どうすればそれを達成できますか? DllCanUnloadNow? – OneMoreVladimir