문제

내가 찾고있는 것은 Google 데스크탑과 유사한 기능입니다. 당신이 쳤을 때 Ctrl 키 두 번 빠르게 검색 상자가 나타납니다.

어딘가에서 찾은 상당히 무거운 키보드 후크 클래스를 사용하려고 시도했지만 계속해서 MeunPredictable 결과를 제공했습니다 (예 : 처음으로 작동 할 때 Ctrl 키 한 번, 키 프레스 이벤트를 여러 번 올릴 것입니까?).

어쨌든, 이것은 단지 복잡 해야하는 것처럼 보이지 않기 때문에 뭔가 잘못하고 있어야한다고 생각합니다. 내 앱 (WPF 앱)은 기본 창의 가시성이 숨겨지고 작업 표시 줄에 상주하지 않고 실행됩니다. 내가 수행 할 때 Ctrl 키 - Ctrl 키, 나는 그것을 잡고 창을 보여주고 싶다.

한 가지 다른 측면 문제 - 나는 현재 핫 키를 등록 하여이 작업을 수행하고 있지만, 내가 원하는 전체 기능을 제공하지는 않습니다 (이중 압력 Ctrl 키). 창이 표시되면 더 이상 초점이 맞지 않을 때 100% 바보로 감지하는 방법을 찾지 못했습니다 (이런 일이 발생할 때 다시 숨기고 싶습니다). 나는 비활성화, LostFocus 등에 응답하려고 노력했으며 대부분의 시간 동안 그 일을 시도했습니다. 그러나 때로는 창이 실제로 활성화되거나 초점을 맞추지 않고 표시되는 것으로 보입니다. 이것에 대한 아이디어도?

감사!
아담

도움이 되었습니까?

해결책

당신은 아마 사용하고 싶을 것입니다 setwindowshookex 키보드 이벤트에 낮은 수준으로 연결됩니다.

여기에 있습니다 C ++의 샘플 코드, 그리고 여기 있습니다 pinvoke.net의 항목, 이것은 이것을 c#에 포트하는 데 도움이 될 것입니다.

C# 코드의 경우 직접 사용할 수 있으면이 작업을 시도 할 수 있습니다. 코드 리젝트 샘플. 내 기억에서, 그것은 대부분의 경우 몇 가지 버그로 작동했습니다. 어느 시점에서 나는 이것을 JAD 엔진으로 포팅하는 데 도움을 주었다.useractivityhook)이를 달성하고 프로세스에서 몇 가지 버그를 수정했습니다. 시작하기에 아주 좋은 곳이 될 수 있습니다 ...

다른 팁

두 번째 질문은 표시 될 때 양식이 활성화되지 않으면 형태 당신이 그것을 표시 한 후. 간단한 디버깅의 경우 GotFocus, LostFocus, Enter, Exit 및 Activate, Exectivate Events를 비활성화하고 이러한 요구 사항을 일관되게 충족하는지 확인하십시오.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top