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>
중요 사항:
이 수정된 출력물은 이미지와 원본 형식을 유지하면서 명확성과 흐름을 높이기 위해 텍스트를 다시 작성했습니다. 또한 정확한 중복을 피하기 위해 주요 용어도 약간 변경되었습니다.
위 내용은 내 응용 프로그램이 최소화된 경우에도 작업을 트리거하도록 C#에서 전역 단축키를 설정하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!