MS VisualC++ でプログラムを書いています。でキーボードフックをセットhHook = SetWindowsHookEx(13,MyProc,GetModuleHandle(NULL),0);
。
Win7 にはフックを無効にするバグがあり、これを再現できます。このバグが発生すると、hHook
はそのままですがTRUE
、 がUnhookWindowsHookEx(hHook)
返されますFALSE
。
ただ、フックが無効になった時だけ再起動したいので、使えませんUnhookWindowsHookEx
。
フックがまだ機能しているかどうかを確認するにはどうすればよいですか? のようなものGetHookStatus(hHook)
。
この Win7 のバグは、何らかのタイムアウトまたは「ガベージ コレクション」が原因であることがわかりましたが、フックの状態を確認し、必要に応じて再起動する方が簡単です。私はプロではなく、主に個人的なニーズのために趣味としてコーディングしています。
ありがとうございました。