2009-11-21 7 views
4

사용자가 어떤 창을 움직이는 지 (내 응용 프로그램에 인터페이스가 없는지) 확인하고 적절히 응답하는지 확인할 것입니다. 이 일을하는 가장 좋은 방법은 무엇이라고 생각합니까? 사용자가 제목 표시 줄을 클릭하고 있는지 확인할 수 있습니까? 창 이동 여부를 결정할 수 있습니까? 나는 그것이 움직이고 있다는 것을 알게 된 후 창문을 잡아야한다.사용자가 창을 움직이고 있는지 확인하십시오.

답변

4

여기에 창 핸들에 대한 기술은 spy입니다. 열려있는 모든 핸들을 검사하고 이동 메시지를 기다릴 수 있습니다.

편집

.NET spy code.

+0

그건 내가 한 번 사용했던 매끄러운 도구입니다. 이 프로젝트는 DOA 였지만, 누가 앱에 대한 감시에 대해 배울 수있는 기회를 포기해야했습니다. :-) –

5

모든 창에 대한 알림을 받으려면 Windows Forms뿐 아니라 SetWindowsHookEx() API 함수에 의해 설정된 후크를 사용해야합니다. WH_CALLWNDPROC 후크가 있어야 Windows에서 창으로 보내는 WM_MOVE 메시지를 볼 수 있습니다.

불행히도, 그것은 세계적인 갈고리입니다. 후크 콜백을 구현하는 코드는 모든 대상 프로세스에 주입 할 수 있도록 DLL에 패키지화해야합니다. 이것으로 C#을 사용하려는 계획에 구멍이 생기고 CLR을 주입 할 수 없습니다. DLL은 비 관리 코드로 작성되어야합니다.

code project은 필요한 관리되지 않는 주사 가능한 DLL을 포함하여 접근 방식을 제공합니다.

관련 문제