2011-08-25 1 views
5

일부 작업을 아웃소싱하고 있으며 일부 작업을 수행하는 아마추어 개발자에게 과도하게 접근합니다. 나는 사전/시소러스/맞춤법 검사 & 제안 응용 프로그램에서 Windows 환경 내의 모든 응용 프로그램에서 작동하도록 노력하고 있습니다.원시 입력 API Windows 7/Vista OS에서 사용 범위. 전체 환경 또는 집중 윈도우에 적용 할 수 있습니까?

필자는 정의와 맞춤법 추천을 입력 할 때 키 입력을 받고 출력을 표시하기 위해 후킹을 사용했습니다. 이것은 내가 원하는 모든 것을 성취하지 못한다. 맞춤법 검사 및 제안을 위해 잘 작동하지만 이미 존재하는 단어를 클릭하거나 터치 스크린 인터페이스가 작동하지 않는 단어를 터치합니다.

MSDN의 Raw Input API를 읽었을 때 효과가 있다고 생각했지만 개발자가 고용 한 이유는 RAW 입력의 범위가 포커스가있는 창에만 있으므로 낮은 수준의 후킹을 할 수 없다는 것입니다. 나는 노력을 기울이는 것을 고려하고 있지만 노력하기 전에 2/3의 네 번째 관점을 원했습니다.

MSDN 참조 : http://msdn.microsoft.com/en-us/library/ff468896%28v=VS.85%29.aspx

희망하는 모든 배경 정보를 멀리 질문에서 고려하지 않습니다. 통찰력을 고맙게 여기십시오.

감사합니다,

답변

2

예, 그 권리입니다. RawInput 메시지 (WM_INPUT)는 포커스가 설정된 윈도우에 대해서만 생성됩니다. 어쩌면 당신은 어떻게 든 그 문제를 해결할 수 있지만 이것이 주요 문제는 아닙니다.

RawInput은 실제로 생 마우스 데이터와 마찬가지로 이름을 말해줍니다. 이 데이터는 상대적인 마우스 이동 또는 마우스 델타 데이터입니다. 마우스가 화면 가장자리에 도달하면 메시지에 값이 입력되고, 가장 중요한 점은 포인터 탄도 (포인터 탄도에 대한 설명은 http://msdn.microsoft.com/en-us/windows/hardware/gg463319 참조)입니다. 이것은 실제 커서 위치를 결정하는 것을 꽤 어렵게 만듭니다.

이제이 모든 동작을 시뮬레이션하고 커서 위치를 시뮬레이트 할 수 있지만 다른 버전의 Windows에서는 포인터 탄도가 동일하지 않습니다. XP는 Vista와는 다른 동작을하며 Windows 7에서 다시 형식을 변경했다고 생각합니다.

API는 장치가있어 상대적인 데이터가 아닌 위치를 알려주지 만 기기를 처음 사용하지는 않습니다 이 동작은 화면을 터치하지 않고 (드라이버에 따라 다를 수 있음) 표시되며 표준 마우스에서는 작동하지 않습니다.

관련 문제