2017-11-02 17 views
0

데이터 마이그레이션을 위해 동일한 탭에서 여러 URL을 하나씩 열리는 VBScript가 있습니다. 내가 가지고있는 문제는 내 PC 또는 연결 속도가 느려지면 내 VBScript가 계속됩니다. 가장 큰 문제는 Ctrl-L 및 WshShell입니다 .END 키 :VBScript 중간 프로세스 실행 중 종료

WshShell.SendKeys "^l" 
WScript.Sleep 1000 
WshShell.SendKeys "https://www.google.com/" 
WshShell.SendKeys "{ENTER}" 

명령이 실행 중입니다. 브라우저를 닫으면 계속 입력 할 것입니다. VBScript 중간 실행을 어떻게 중지시킬 수 있습니까? 브라우저를 닫으면 멈출 수있는 방법이 있습니까?

+0

배치 파일과 함께 사용자 이름과 암호를 보내는 것과 관련이 있습니까? VBScript는 배치 파일이 아닙니다. – Squashman

+0

Dang it, 마지막 질문의 제목. 정말 미안해. – JMV12

+0

'브라우저를 닫으면 계속 입력 할 것입니다. - 입력하기 전에 브라우저의 존재와 상태를 확인하지 않으시겠습니까? –

답변

0

SendKeys 메서드는 프로그래밍 방식의 액세스 권한이없는 기존 프로그램을 자동화하려고 시도한 마지막 시도입니다. Per its documentation,

SendKeys 메서드를 사용하면 자동화 인터페이스가없는 응용 프로그램에 키 입력을 보낼 수 있습니다.

웹 브라우저를 자동화하려는 경우 (일종의 자동화 된 테스트에서와 같이) 웹 브라우저를 자동화하기 위해 고안된 라이브러리를 사용해야합니다. 예를 들어 인터넷 익스플로러는 실질적인 COM 자동화 인터페이스를 가지고 있습니다 (its documentation 참조). MSDN에서 VBScript를 사용하여 샘플을 보지 못했지만, .NET과 PowerShell로 옮겨 지길 바란다. 맡은 일). 자동화하고있는 브라우저에 실제 객체 라이브러리를 사용하면 브라우저 창을 닫을 때 뭔가를하고 싶은 욕구와 같이 이벤트를 직접 제어하고 이벤트를 처리 할 수 ​​있어야합니다.

웹 브라우저를 사용하는 대신 데이터를로드하려는 경우 WinHttpRequest object을 사용하여 데이터를로드하면됩니다.

무언가를 자동화하기 위해 실제로 SendKeys을 사용해야하거나 특정 시간에 스크립트를 중지하는 방법을 찾고 싶다면 스크립트를 실행하여 이전에 계속 실행해야하는지 확인하는 것이 가장 좋습니다. 그것은 계속됩니다. 예를 들어, Sleep 전화를 건 후에는 자동화 상태가 예상되는 상태인지 확인해야합니다. 보다 포괄적 인 인터페이스를 지원하는 COM 객체를로드하지 않고 VBScript 만 사용하여 확인할 수있는 것은 많지 않지만, WScript.AppActivate을 실행하고 반환 값을 확인하여 찾고있는 창이 여전히 있는지 확인하십시오 그곳에. 스크립트가 종료되어야한다고 결정하면 WScript.Quit 메서드를 호출하여 호출 할 수 있습니다.