2009-10-25 8 views
2

interop이 약간 필요할 수 있음을 인식하고 현재 표시되지 않는 창에 마우스 클릭 이벤트를 보내려면 어떻게해야합니까? 서비스로 실행 중이고 숨겨진 창을 훑어보고 마우스 클릭 이벤트를 창 중 하나에 보내야하는 응용 프로그램이 있습니다 (실제로 창을 표시 할 수는 없지만).숨겨진 창에 마우스 클릭 이벤트를 보내는 방법은 무엇입니까?

정상적인 방법은 단순히 클릭을 적절한 위치의 화면으로 보내는 것이지만이 경우에는 분명히 해당 방법이 작동하지 않습니다. 아이디어?

답변

2

Spy ++를 사용하면 표시되는 Windows 메시지를 실제로 마우스로 클릭 한 다음 SendMessage를 사용하여 해당 메시지를 직접 보낼 수 있습니다.

+0

좋아, 스파이 ++는 어떻게 "sendMessage 첨부"에 접근 할 거기에 몇 가지 유용한 힌트를 가지고? –

+0

@Nathan : http://www.pinvoke.net/default.aspx/user32.SendMessage를 참조하십시오. – RichieHindle

+0

우우, 그걸 축하합니다. –

3

창에서 HWND를 가져올 수 있다면 매우 쉽습니다. WM_LBUTTONDOWN과 함께 PostMessage()을 왼쪽 클릭으로 사용하십시오.

예 : 위치 (10, 10)를 클릭 (검증되지 않은 C)

HWND hWnd = (hwnd of window) 
WORD mouseX = 10; 
WORD mouseY = 10; 
PostMessage(hWnd,WM_LBUTTONDOWN,0,MAKELPARAM(mouseX,mouseY)); 
+0

니스, 저기요, 고마워요. 고마워요. –

관련 문제