메서드는 three arguments이고 그 중 세 번째 값은 프로그 램이 새로 생성 된 프로세스가 끝나기를 기다려야하는지 여부를 지정하는 부울 값입니다.bWaitOnReturn은 HTA에서 실행될 때 mstsc.exe에 아무런 영향을주지 않습니다.
mstsc.exe
(Windows의 원격 데스크톱 연결 프로그램)에서 제대로 작동하려면이 문제가 발생합니다.
아래 파일을 test.vbs
으로 저장하고 cscript test.vbs
으로 실행하면 예상대로 작동합니다. 내가 HTA 파일에서 동일한 코드를 실행하려고하면
Set obj = CreateObject("WScript.Shell")
Call obj.Run("notepad.exe", 1, true)
MsgBox "You just closed notepad."
Call obj.Run("mstsc.exe", 1, true)
MsgBox "Remote desktop just closed."
그러나이 제대로 작동하지 않습니다 - 오히려 mstsc.exe
실행 후 메시지 상자가 즉시 기다릴 필요가 나타납니다.
<html>
<head>
<script language="VBScript">
Sub RunProgram
Set obj = CreateObject("WScript.Shell")
Call obj.Run("notepad.exe", 1, true)
MsgBox "You just closed notepad."
Call obj.Run("mstsc.exe", 1, true)
MsgBox "Remote desktop is still open!"
End Sub
</script>
</head>
</body>
<body onload=RunProgram>
</html>
왜 이런 일이 발생하고 어떻게 수정해야하는지 궁금하십니까?
편집 : 윈도우 10에서이 테스트를했는데 7
가 재생할 수없는 차이를하지하고 함께 할 것입니다 의심 윈도우 10에서 동일한 얻을. 두 번째 메시지 상자는 두 경우 모두에서 RDP 연결을 닫은 후에 만 나타납니다. –
@AnsgarWiechers 어떤 운영 체제를 사용하고 있습니까? Windows 10에서이 문제가 발생했음을 언급 했어야합니다 ... (몇 대의 PC에서 시도해 보았습니다). –
Windows 10에서 같은 결과를 얻었습니다. HTA가 32 비트로 실행되도록 설정되었지만 32 비트 버전으로 변경해도 mstsc가 아무런 차이가 없었습니다. –