windows - Sådan kører du et program og venter på, at det lukker for at køre resten af ​​koden

Indlæg af Hanne Mølgaard Plasc

Problem



Jeg spekulerede på, hvordan kan jeg ringe til en exe og vente på at lukke og derefter udføre resten af ​​koden.
Dette er koden jeg har:


Set WshShell = WScript.CreateObject("WScript.Shell")
WshShell.Run("C:UsersHP8200DesktopSolitRepoeTEMSolitRepoeTEMinDebugWindowsFormsApp12.exe")
WshShell.SendKeys "{d}"
WshShell.SendKeys "{o}"
WshShell.SendKeys "{c}"
WshShell.SendKeys "{u}"
WshShell.SendKeys "{m}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{n}"
WshShell.SendKeys "{t}"
WshShell.SendKeys "{o}"
WshShell.SendKeys "{-}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{n}"
WshShell.SendKeys "{t}"
WshShell.SendKeys "{enter}"
WshShell.SendKeys "{enter}"
WshShell.SendKeys "{r}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{p}"
WshShell.SendKeys "{o}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{t}"
WshShell.SendKeys "{e}"
WshShell.SendKeys "{m}"
WshShell.SendKeys "{enter}

Bedste reference


Når du er i tvivl, læs dokumentationen. [8]



  

Kør metode (Windows Script Host)


  
  Kører et program i en ny proces.

  
   Syntax


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

  
   argumenter

  
  [[...]]

  
   bWaitOnReturn

  Valgfri. Boolean-værdi, der angiver, om scriptet skal vente på, at programmet afsluttes, før du fortsætter til næste sætning i scriptet. Hvis den er indstillet til true , afbrydes scriptudførelsen, indtil programmet er færdigt, og Run returnerer enhver fejlkode, der returneres af programmet. Hvis den er indstillet til false (standard), returnerer metoden Run umiddelbart efter starten af ​​programmet, og returnerer automatisk 0 (skal ikke fortolkes som en fejlkode).



Hvis det ikke virker, fordi de eksekverbare returneringer straks forsøger at køre programmet fra CMD via kommandoen start. [9]


WshShell.Run "cmd /c start """" /wait /b ""C:User...App12.exe""", 0, True


Hvis det stadig ikke virker, skal du kontrollere proceslisten til din ansøgning. Lav en WMI-forespørgsel mod klassen Win32\_Process i en loop, indtil processen ikke vises længere. [10]