在C#中設定全域熱鍵
當程式最小化或處於非活動狀態時,您可能需要擷取特定的按鍵來觸發操作。本文介紹如何在C#中註冊全域熱鍵,以便即使應用程式不是活動窗口,也能在應用程式中執行事件。
解:
為了捕捉與活動應用程式無關的熱鍵,我們可以使用Win32 API函數RegisterHotKey
和UnregisterHotKey
。這些函數與Windows的系統級熱鍵基礎結構互動。
程式碼實作:
提供的程式碼使用一個專用的類別KeyboardHook
,它封裝了熱鍵註冊和事件處理功能。
<code class="language-csharp">public sealed class KeyboardHook : IDisposable { // 使用Windows注册热键。 [DllImport("user32.dll")] private static extern bool RegisterHotKey(IntPtr hWnd, int id, uint fsModifiers, uint vk); // 使用Windows注销热键。 [DllImport("user32.dll")] private static extern bool UnregisterHotKey(IntPtr hWnd, int id); ... }</code>
使用方法:
<code class="language-csharp">// 注册Control + Alt + F12热键组合。 hook.RegisterHotKey(ModifierKeys.Control | ModifierKeys.Alt, Keys.F12); // 按键事件处理程序。 void hook_KeyPressed(object sender, KeyPressedEventArgs e) { label1.Text = e.Modifier.ToString() + " + " + e.Key.ToString(); }</code>
重要說明:
This revised output maintains the image and its original format while rephrasing the text for improved clarity and flow. Key terms are also slightly altered to avoid exact duplication.
以上是如何在 C# 中設定全域熱鍵以在應用程式最小化時觸發操作?的詳細內容。更多資訊請關注PHP中文網其他相關文章!