2016-09-26 2 views
0

높이가 낮아서 내 문제에 대한 만족스러운 대답을 찾을 수 없습니다. 웹 사이트를 열고 내 사용자 ID와 암호를 입력하여 입력하고 싶습니다. StackOverflow에서 CreateProcess와 WaitForInputIdle을 사용하는 프로 시저를 사용하고 있습니다. 문제는 프로 시저가 웹 사이트가 완전히 표시 될 때까지 기다리지 않고 반환되므로 ID와 암호가 잘못된 위치에있게됩니다. 절전 모드 (5000)를 삽입하면 대부분 작동하지만 신뢰할 수는 없습니다. 아무도 올바른 방향으로 나를 가리킬 수 있습니다.WaitForInputIdle이 웹 사이트가 완전히 표시되기를 기다리지 않음

+4

이것은 명백한 이유로는 작동하지 않습니다. 새 웹 페이지를 열면 페이지로드가 완료되기 전에 브라우저와 상호 작용할 수 있습니다. 로드가 완료 될 때까지 기다려야합니다. 아마도 더 쉽게 제어 할 수있는 브라우저에서 프로세스를 호스팅하는 것이 더 쉬울 것입니다. –

+1

[WaitForInputIdle은 실제로 WaitForProcessStartupComplete라고해야합니다.] (https://blogs.msdn.microsoft.com/oldnewthing/20100325-00/?p=14493) 및 [WaitForInputIdle은 관심있는 스레드가 아닌 스레드를 기다립니다. about] (https://blogs.msdn.microsoft.com/oldnewthing/20100326-00/?p=14483)에서'WaitForInputIdle()'이 어떻게 동작하는지 알아 보자. –

+0

반드시 기다려서는 안됩니다. StackOverflow에서'WaitForInputIdle'에 대한 문서를 찾았습니까? –

답변

1

응용 프로그램이 입력을 기다리는 즉시 WaitForInputIdle이 반환되지만 웹 브라우저는 그 전에 웹 사이트를로드하지 않기 때문에 결코 작동하지 않습니다.

원하는대로 다른 방법을 찾아야합니다. 예를 들어, 열어 본 즉시 원하는 웹 사이트에 사용자 ID와 비밀번호를 게시하는 html 양식을 만들 수 있습니다. How do you force a web browser to use POST when getting a url?

또는 애플리케이션에 웹 브라우저를 호스팅하십시오. 그런 다음 귀하의 통제하에 있으며 코드로 게시물을 보내거나 웹 사이트로드가 완료되면 통지를받을 수 있습니다.

관련 문제