1

ここに私のVBSコードがあります

Set wshshell = wscript.CreateObject("WScript.Shell")
Wshshell.run "C:\Temp\Executable.exe -c -dir C:\Productdir"
'Wait till "This will install the product on your computer. Press OK, Cancel" appears
WScript.Sleep 10000
WshShell.SendKeys "~"   
  1. 「ハードコーディングされた10秒のスリープではなく」、たとえばこのようなものを追加することは可能if consolemessage="This will install the product on your computer. Press OK, Cancel" then WshShell.SendKeys "~"ですか?
  2. WScript.StdOut上記の場合、コンソール メッセージをキャプチャするために使用できますか? できませんでした。
4

1 に答える 1

1

StdOutメソッドを使用してプログラムを実行すると、プロセスを読み取ることができますExec

Set wshshell = wscript.CreateObject("WScript.Shell")
Set p = Wshshell.Exec("C:\Temp\Executable.exe -c -dir C:\Productdir")

Do While p.Status = 0
  output = ""
  Do Until p.StdOut.AtEndOfStream
    c = p.StdOut.Read(1)
    WScript.StdOut.Write c  'write read characters to the command prompt
    output = output & c
    If InStr(output, "This will install the product") > 0 Then
      'do stuff
      Exit Do
    End If
  Loop
  WScript.Sleep 100
Loop
于 2013-08-02T11:45:28.307 に答える