2009-03-01 2 views
1

C# : 다중 키 바로 가기를 전체적으로 모니터링하는 데 가장 적합한 후크는 무엇입니까?C# : 다중 키 바로 가기를 전 세계적으로 모니터링하는 데 사용할 수있는 가장 좋은 훅은 무엇입니까?

LowLevelKeyboardProc 및 KeyboardProc가 있습니다. Windows에서 Alt + Q와 같은 키 조합을 모니터링하고 Alt + Q를 기반으로하는 작업을 수행하려고합니다. 어느 후크가 사용하기에 가장 좋은 옵션일까요? 그리고 핫키의 모든 키가 현재 훅 콜백에서 하나씩 각 키를 모니터링하는 것과는 대조적으로 감지되는 경우 어떻게 감지합니까?

답변

2

WH_KEYBOARD_LL은 C#으로 작성할 수있는 유일한 옵션입니다. WH_KEYBOARD는 다른 프로세스에서 주입 할 수있는 DLL을 작성해야합니다. 관리 코드에서는 가능하지 않지만 CLR을 제대로 초기화 할 수 없습니다.

RegisterHotKey()도 고려하십시오. 샘플 코드 is there을 사용하면 C#을 페이지 아래쪽으로 찾을 수 있습니다.

0

한스 패전트 (Hans Passant)의 답변에서 말한 것처럼 기술적으로는 WH_KEYBOARD_LL 후크에 연결하는 것 외에는 방법이 없습니다. 그럼에도 관리되는 래퍼 MouseKeyHook as nuget이있어 편리하게 관리되는 래퍼를 제공합니다. Source code on github.

최근에는 바로 가기, 키 조합 및 시퀀스 검색에 대한 지원이 추가되었습니다.

void DoSomething() 
{ 
    Console.WriteLine("You pressed UNDO"); 
} 

Hook.GlobalEvents().OnCombination(new Dictionary<Combination, Action> 
{ 
    {Combination.FromString("Control+Z"), DoSomething}, 
    {Combination.FromString("Shift+Alt+Enter"),() => { Console.WriteLine("You Pressed FULL SCREEN"); }} 
}); 

자세한 내용은 다음을 참조하십시오 : Detecting Key Combinations and Seuqnces

를 여기에 사용 예입니다
관련 문제