SetWindowsHookExによって返される有効なhookIDを取得できず、GetLastWin32Error()も0を返すという問題に直面しています。私は以下のコードを書きました:
_LowLevelhookID = SetWindowsHookEx((int)HookType.WH_KEYBOARD_LL, LowLevelKeyboardHookHandler, IntPtr.Zero, GetCurrentThreadId());
int errorCode = -1;
if(_LowLevelhookID == (IntPtr)0)
{
errorCode = Marshal.GetLastWin32Error();
}
実際、アプリケーション専用の低レベルのキーボードフックを作成したいのですが、SetWindowsHookExパラメーターの説明に従って、現在のthreadIDを設定し、アプリケーションのキーイベントのみをキャプチャする場合は、hModパラメーターをnullに設定します。
GetCurrentThreadId()が、私のアプリが実行されているThreadIDを希望する正しいメソッドであることを誰かが確認できますか?