2016-07-11 1 views
0

아래 코드는 오류없이 실행됩니다.VB6 : 명령을 실행할 때까지 기다리는 방법

하지만이 줄에서 프로세스가 종료 될 때까지 기다려야합니다 : WshShell.Exec "TASKKILL /F /IM " & EngineRun.ProcessID msgbox가 종료되었다는 것을 표시하기 전에 기다려야합니다. 어떤 도움

답변

2

에 대한

Option Explicit 

Dim WshShell As Object 
Dim EngineRun As Object 

Sub main() 

Set WshShell = CreateObject("WScript.Shell") 
Set EngineRun = WshShell.Exec("notepad.exe") 

MsgBox EngineRun.ProcessID 

WshShell.Exec "TASKKILL /F /IM " & EngineRun.ProcessID 

MsgBox EngineRun.ProcessID & (" terminated") 

End Sub 

덕분에 대신 Run 방법을 사용할 수 있을까요? MSDN을 참조하십시오. 그것은 bWaitOnReturn 매개 변수를 지원합니다 제대로

WshShell.Run "TASKKILL /F /IM " & EngineRun.ProcessID,4 , True 
+0

'WshShell.run'TASKKILL/F/IM '& EngineRun.ProcessID, True'로 변경되었으며 우승자가 있습니다! 나는 Do ... Until을 사용하는 다른 방법을 시도했지만 너의 것은 훨씬 깨끗하고 간단하다. 시간 내 줘서 고마워! – Chris

1
Set objWMIService = GetObject("winmgmts:\\.\root\cimv2") 

Set colItems = objWMIService.ExecQuery("Select * From Win32_Process") 

For Each objItem in colItems 
    'msgbox objItem.ProcessID & " " & objItem.CommandLine 
    If objItem.name = "Calculator.exe" then objItem.terminate 
Next 

하는 일 :

object.Run(strCommand, [intWindowStyle], [bWaitOnReturn]) 

그래서 코드는 같을 것이다.