C# のグローバルフックは キーボードとマウスのみと云うことらしいです↓。
https://stackoverflow.com/questions/1811383/setwindowshookex-in-c-sharp
"Global hooks are not supported in the .NET Framework. Except for the WH_KEYBOARD_LL low-level hook and the WH_MOUSE_LL low-level hook, you cannot implement global hooks in the Microsoft .NET Framework."
WH_GETMESSAGEを受信できるのは、自分のWindowのコールバック内だけでした↓。
https://stackoverflow.com/questions/16384107/catching-the-screen-saver-event
マウスグローバルフックWH_MOUSE_LL
マウスのグローバルフック C#コード例は下記にありました↓。
https://www.ipentec.com/document/csharp-get-mouse-pointer-screen-position-using-global-hook
↑コード例共有は、非常にありがたいのですが 長時間試すと落ちました。
↓下記のコード例は安定動作しました。
https://aonasuzutsuki.hatenablog.jp/entry/2018/10/15/170958
キーボードグローバルフック WH_KEYBOARD_LL
キーボードフックも同じブログに書かれていました
↓これも安定して動きます。
https://aonasuzutsuki.hatenablog.jp/entry/2018/10/15/170958
その他のグローバルフック
↓WH_GETMESSAGEを表にしてくれている人がいました。
http://chokuto.ifdef.jp/urawaza/message/WM_SYSCOMMAND.html
↓自分のWindowだけでスクリーンセーバーフック
https://lets-csharp.com/stop-screen-saver/
WH_GETMESSAGEのグローバルフックをする場合C++でDLLを作れば.NET6でも受けれるらしいので次回ためす。
