나는 sendMessage/postMessage API 호출을 사용해야하므로 Windows의 활성 응용 프로그램이 아닌 특정 응용 프로그램에 pressKey 이벤트를 보내려고합니다.응용 프로그램의 활성 ChildWindow를 얻으려면 어떻게해야합니까?
는 그러나, 나는 ... 응용 프로그램에서 활성화되어 정확한 자식 창을 알고 그것에 pressKey 메시지를 보낼 필요가 내가 GetTopWindow 및하여 GetWindow (GW_CHILD) API는 정상 아이를 얻기 위해 호출을 사용했다
메인 윈도우의 윈도우를 열고, 얻어진 child window로 다시 최상위 grandWildowWindow를 얻고, 더 이상 childwindow가없는 childwindow를 찾을 때까지 계속합니다. 이것은 일부 응용 프로그램에서는 잘 작동하지만 어떤 경우에는 그렇지 않습니다. 때로는 부모 창은 자식 창 중 하나가 아닌 활성 창이므로 부모의 상위 자식 창을 가져 오지 않으면 잘못된 창으로 메시지를 보냅니다.GuiThreadInfo API 호출을 사용하고 있지만 대상 응용 프로그램이 Windows에서 활성 응용 프로그램 인 경우에만 작동하는 것으로 나타났습니다 (실제 활성 창의 처리기를 가져 오는 것). 처음에 언급했듯이 핸들러가 null이되지는 않습니다.
setForegroundWindow API 호출을 사용하여 응용 프로그램을 맨 위로 가져올 수 있지만이 작업을 수행하고 싶지는 않습니다. 또한 AttachThreadInput 및 GetFocus API 호출을 시도했지만 대상 응용 프로그램이 활성 응용 프로그램 인 경우 다시 작동합니다.
아이디어가 있으십니까? 고마워요
는, 당신이 '당신을 찾고 또는 얼마나하는지 그렇게 확신하지, 활성 창을 가지고 있지 않습니다 이런 식으로 안정적으로 구현하십시오. 네가하려는 것은 무엇인가? – jdigital