2014-12-23 13 views
1

...실제 사용자의에서 SendKeys를 구별/키보드 내가 창문 vb.net에서 타이핑 속도 계산기 응용 프로그램을 개발하기 위해 노력하고

내가에서 SendKeys을 거부 해결하기 위해 노력하고 있어요 문제는 내가 사용자가 원하는 즉, 키 입력 키보드의 텍스트 만 입력하십시오.

다른 응용 프로그램이나 autotypers에서 sendkeys를 감지하고 텍스트 상자를 지울 수있는 방법이 있습니까?

것들 나는 시도했다 :

실행하여 VB에서 http://blogs.msdn.com/b/toub/archive/2006/05/03/589423.aspx 에서 언급 한 낮은 수준의 후크를 시도 (작동하지 않았다)를 SendKeys 매크로에서 스트로크를 감지 발생하는 이벤트에 타이머를 설정하기 위해 시도 시각적 스타일을 비활성화하고 메인에서 내 양식을 실행하여 후크를 설정함으로써 기본 모듈

codeprojects에서 다른 후크를 시도해 보았습니다.

내가 지금 일하고 있다는 생각은 사용자가 키 입력을 보낼 응용 프로그램을 활성화하기 위해 양식에서 포커스를 잃어야한다는 것입니다. 나는 다른 응용 프로그램이 sendkey를 시도 할 때 그렇게 할 수 없을 정도로 텍스트 상자에서 단추 또는 다른 것으로 포커스를 변경한다고 생각합니다.

+0

나는 링크에서 코드를 시도했는데 ... 작동하지 않으며 몇 가지 다른 코드 예제를 사용해 보았습니다. 따라서 위의 질문을 게시했습니다. – user2866752

+0

귀하의 질문은 귀하가 여기에 게시하기 전에 문제를 해결하거나 연구하기 위해 노력한 것을 나타내지 않습니다. 그렇게했으면 질문을 편집하고 자신의 필요에 맞지 않는 방법을 설명하십시오. –

+1

Sendkeys는 키보드처럼 큐에 메시지를 추가하도록 설계되었습니다. 그러므로 어느 것이 어떤 것인지를 판단 할 수 없습니다. 당신의 단축키로 내 앱을 활성화 할 수 있거나 시스템 트레이를 사용하여 앱에 집중력이 떨어지지 않아서 포커스 아이디어가 작동하지 않을 수도 있습니다. 가장 가까운 곳은 실행중인 모든 응용 프로그램에 어떤 어셈블리가로드되어 있는지 확인하고 그 중 하나에 SendKeys에 사용 된 동일한 어셈블리가 있는지 확인하는 것입니다.하지만 많은 오탐이 반환됩니다. – Steve

답변

0

다른 응용 프로그램의 키 입력을 감지하는 대신 named pipes과 같은 일부 프로세스 간 통신을 사용할 수 있습니다.