2011-01-15 5 views
-1

C#에서 캡션별로 창을 검색하는 win32 호출로 소프트웨어를 작성 중입니다. 창이 나타나면, 내 소프트웨어는 수동으로 자신을하고 싶지 않은 반복적 인 활동을 자동화하기 위해 다양한 Windows 메시지를 전송합니다. 내가 찾은 바에 따르면 보낸 WM 메시지가 응용 프로그램에서 처리되는 것으로 보이지 않는 경우가 있습니다. 나의 현재 이론은 내 소프트웨어가 창을 발견하고 응용 프로그램 메시지 루프가 실제로 생성되기 전에 창 메시지를 보내기 시작한다는 것입니다.메시지 루프 대기

메시지 루프가 실행될 때까지 기다리는 방법이 있습니까?

답변

1

Process.WaitForInputIdle()은 하나의 해결책 일 수 있습니다.

는 프로세스의 구성 요소가 유휴 상태를 입력 관련 프로세스 무기한 를 대기시킵니다. 이 오버로드는 사용자 인터페이스가있는 프로세스에만 적용되므로 메시지 루프는 입니다.

+0

WaitForInputIdle은 첫 번째 호출에서 한 번만 대기합니다. 이후에 사용하면 즉시 성공을 반환합니다. 나는 그에게 총을 줘야 겠지만 그것이 일을 할 지 확신하지 못한다. – Jeremy

0

이 처리되지 않습니까? UIPI에 의해 막혔습니까?

+0

차단하지 않으며 처리하지 않습니다. – Jeremy