複数のスレッドが実行されているguiにはサードパーティのプロセスがあります。このプロセスをGUIのスレッドに設定する必要があります。インターフェイスウィンドウのIDスレッドを知る方法は?
processID = 8888; //pid
HWND hWnd = GetForegroundWindow();
DWORD threadID = GetWindowThreadProcessId(hWnd, &processID);
hHook = SetWindowsHookEx(WH_KEYBOARD_LL, (HOOKPROC)&KeyboardProc, GetModuleHandle(NULL), threadID);
processId
挿入を手動でタスクマネージャから(デバッグのために、その後、彼はスクリプトに戻ります):次のように私はやります。最後の行のthreadID
オプションを0に置き換えると、フックは機能しますが、ブラウザ内であってもどこでも動作します。私は間違って何をしていますか?
あなたの質問は何ですか私は答えを見つけましたか?あなたが尋ねる唯一の本当の疑問は、「なぜこのAPIは[文書化された(https://msdn.microsoft.com/en-us/library/windows/desktop/ms644990.aspx)として動作しますか?」* – IInspectable