django.durano
Goto Top

Probleme mit mehrfachausführung von Schleifen

Hallo, ich habe folgendes Problem.

Ich möchte gerne folgende Funktion ausführen.

handle -p uTotalmedia m2ts
und diese in eine Textdatei schreiben.
Nun bin ich soweit das ich das auch mit folgendem Code hinbekomme.

Dim fso
Dim ObjExec
Dim strFromProc
Set fso = WScript.CreateObject("Scripting.Filesystemobject")  
Set f = fso.OpenTextFile("C:\log.txt", 8)  
Set objShell = WScript.CreateObject("WScript.Shell")  
Set ObjExec = objShell.Exec("handle -p utotalMedia m2ts")  

Do
    strFromProc = ObjExec.StdOut.ReadLine()
    f.writeline strFromProc
Loop While Not ObjExec.Stdout.atEndOfStream

So nun würde ich gerne diese Funktion mehrmals hintereinander ausführen und zwar in dem ich eine MessageBox öffne und dort entweder Ja für wiederholen oder Nein für beenden drücke.
Nun habe ich etwas probiert leider bekomme ich es nicht hin das ich die Funktion mehrmals ausführen kann.

Ich habe sowas in der Art versucht leider ohne Erfolg.
Do Until CheckMessage = vbNo
	 CheckMessage = MsgBox("Click no to close this. Click yes for it to come again.", vbYesNo)  
			Do while not objExec.StdOut.AtEndOfStream
				strFromProc = ObjExec.StdOut.ReadLine()
				f.writeline strFromProc
				f.WriteBlankLines(1)
			Loop
	
Loop

Ich hoffe mir kann jemand bei meinem kleinen Problem helfen.

Gruß

Content-Key: 298206

Url: https://administrator.de/contentid/298206

Ausgedruckt am: 28.03.2024 um 21:03 Uhr

Mitglied: 114757
Lösung 114757 04.03.2016 aktualisiert um 19:10:38 Uhr
Goto Top
Moin,
guckst du hier eine mögliche Variante:
'Variablen   
Dim file

'Objekte initialisieren  
Set fso = CreateObject("Scripting.Filesystemobject")  
Set objShell = CreateObject("WScript.Shell")  

'Sub für die spätere Wiederholung erstellen  
Sub MyProg(f)
       With objShell.Exec("handle -p utotalMedia m2ts")	  
		Do
		    f.writeline .StdOut.ReadLine()
		Loop While Not .Stdout.AtEndOfStream
	End With
End Sub

'Ausgabedatei öffnen  
Set file = fso.OpenTextFile("C:\log.txt", 8, True)  

'Loop des Sub so lange bis der Dialog mit "Nein" bestätigt wird  
While MsgBox("Click no to close this. Click yes for it to come again", vbYesNo) = vbYes  
	MyProg file
Wend

'Asgabedatei schließen  
file.Close
Gruß jodel32
Mitglied: Django.Durano
Django.Durano 04.03.2016 aktualisiert um 20:48:24 Uhr
Goto Top
Danke für deine wirklich schnelle Hilfe funktioniert einwandfrei.
Eine Frage habe ich noch, ich habe gelesen das es möglich ist Kommandozeilenfenster das jetzt durch den Aufruf durch die Handle.exe aufploppt wegzubekommen. Ist das richtig? Wenn ja wie würde das dann ausehen?

Edit:

Habe noch ein bisschen gegoogelt und bin dann drauf gestoßen das es wohl nicht wirklich möglich ist exec zu hidden außer man startet das Script von einem anderen Script aus mit folgendem Kommando.

CreateObject("WScript.Shell").Run "cscript D:\Test\Test3.vbs", 0, True