ホームページ > バックエンド開発 > C++ > .NET 3.5 を使用して WPF にグローバル CTRL SHIFT (LETTER) ホットキーを登録する方法

.NET 3.5 を使用して WPF にグローバル CTRL SHIFT (LETTER) ホットキーを登録する方法

DDD
リリース: 2025-01-14 07:26:44
オリジナル
725 人が閲覧しました

How to Register a Global CTRL SHIFT (LETTER) Hotkey in WPF with .NET 3.5?

WPF および .NET 3.5 で CTRL SHIFT (文字) を検出するためのグローバル ホットキーを登録します

.NET 3.5 を使用して WPF でデスクトップ アプリケーションを開発する場合、特定のキーの組み合わせ、または Windows キーにバインドすることが一般的な要件です。この機能を実装する方法を見てみましょう:

グローバルホットキーの登録

押されたときに特定のアクションをトリガーするグローバル ホットキーを登録するには、user32.dll ライブラリの RegisterHotKey 関数と UnregisterHotKey 関数を使用できます。これらの関数は、ホットキー修飾子 (Ctrl、Shift、Windows キーなど) と、目的の文字を表す仮想キー コードを定義する引数を受け取ります。

キーにバインド

WPF アプリケーションで、ホットキーの登録とイベント処理を管理する HotKey クラスを作成します。このクラスは、必要なキーの組み合わせと、ホットキーがトリガーされたときに実行されるアクションを使用して初期化できます。 Register() メソッドを呼び出して、システム全体にホットキーを登録します。

キーのバインドを解除

特定のホットキーが必要なくなった場合は、Unregister() メソッドを呼び出してその登録を削除できます。これにより、ホットキーが入力に応答しなくなります。

サンプルコード

提供されたコードは、CTRL SHIFT (文字) を含む任意のキーの組み合わせにバインドするために使用できる HotKey クラスの完全な実装を示しています。また、登録とイベント処理のメカニズムも示しています。

<code class="language-c#">public class HotKey : IDisposable
{
    public Key Key { get; private set; }
    public KeyModifier KeyModifiers { get; private set; }
    public Action<HotKey> Action { get; private set; }
    public int Id { get; set; }
    // (代码继续...)
}

private static void ComponentDispatcherThreadFilterMessage(ref MSG msg, ref bool handled)
{
    // (代码继续...)
}</code>
ログイン後にコピー
<code class="language-c#">// 使用示例:

_hotKey = new HotKey(Key.F9, KeyModifier.Shift | KeyModifier.Win, OnHotKeyHandler);

private void OnHotKeyHandler(HotKey hotKey)
{
    // 处理热键事件
}</code>
ログイン後にコピー

このコード スニペットは、KeyModifier Shift、Win、および Key F9 を使用してホットキー オブジェクトを作成します。 OnHotKeyHandler メソッドが実行されると、このホットキーの組み合わせが押されたことが示されます。

Windows キーが含まれています

Windows キーを含むホットキーを登録するには、Register メソッドを呼び出すときに KeyModifiers パラメーターで KeyModifier.Win フラグを使用します。これにより、コンピュータをロックする Win L など、この修飾子とのホットキーの組み合わせをキャプチャできるようになります。

以上が.NET 3.5 を使用して WPF にグローバル CTRL SHIFT (LETTER) ホットキーを登録する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート