キーストロークを登録およびキャッチするためのライブラリ

キーの組み合わせとは、キーボードで許可されている任意の順序で同時に押された任意の数のキーを指します。 ただし、エンドユーザーの場合、1つの組み合わせで5つを超える数を超えないでください。 誰もがゲーム用キーボードを持っているわけではありません。



使用例


HotKeysManager manager = new HotKeysManager(); manager.AddHotKey(new HotKeyCombination(() => { MessageBox.Show(", !"); }) { Keys.LControlKey, Keys.H });
      
      





現在押されているキーが組み合わせとして取得される場所を追加する別のオプションは、ユーザーが自分で組み合わせを割り当てる場合に便利です。 デモには、このような組み合わせレコードの例があります。

 manager.AddHotKey(new HotKeyCombination(HookManager.CurrentDownedKeys.ToArray(), () => { MessageBox.Show(", !"); }));
      
      







これで、LeftCtrl + H(またはH + LeftControl)の組み合わせを押すと、ウェルカムメッセージが表示されます。



どうした




グローバルクリックインターセプトには、3つのWinAPI関数が使用されます。

 /// <summary> ///       /// </summary> [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)] private static extern int CallNextHookEx(int idHook, int nCode, int wParam, IntPtr lParam); /// <summary> ///      /// </summary> [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] private static extern int SetWindowsHookEx(int idHook, HookProc lpfn, IntPtr hMod, int dwThreadId); /// <summary> ///     /// </summary> [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall, SetLastError = true)] private static extern int UnhookWindowsHookEx(int idHook);
      
      







イベントを受信すると、キーが押されたか放されたかをチェックし、現在押されたキーのリストが生成されます。その後、組み合わせチェックが呼び出され、一致する場合はアラートが送信されます。



組み合わせの可用性に応じて、クリック代行受信が自動的にオン/オフになります。



機能的


クラスHotKeysManager


方法





イベント:





HookManagerクラス(静的クラス)




プロパティ:





イベント:





ダウンロード(ソース+ bin_x86)



使用するときは、変換がグローバルであることを覚えておく価値があります。プログラムのアクティブウィンドウでのみアクションを制御する場合は、追加のチェックを入力する必要があります。



All Articles