Sascha321 12 Geschrieben 11. Mai 2009 Melden Teilen Geschrieben 11. Mai 2009 Hallo kann mir von euch einer sagen warum die if abfrage nicht funktioniert? wenn der calculator gestartet ist kommt die msgbox "calc.exe" wenn er nicht gestartet ist sollte die meldung "und draussen" kommen, kommt aber nicht. kann da jemand helfen. strComputer = "computer" strProcess01 = "calc.exe" strProcess02 = "wordpad.exe" Set oShell = CreateObject("WScript.Shell") Set colMonitoredEvents = GetObject("winmgmts:")._ ExecNotificationQuery("Select * from Win32_PowerManagementEvent") do Set objWMIService = GetObject("winmgmts:" _ & "{impersonationLevel=impersonate}!\\" & strComputer & "\root\cimv2") Set colProcesses = objWMIService.ExecQuery _ ("Select * from Win32_Process Where Name='" & strProcess01 & "' OR Name='" & strProcess02 & "'") For Each objProcess in colProcesses if objProcess.name = "calc.exe" Then Wscript.Sleep 1000 msgbox objProcess.name else Wscript.Sleep 1000 msgbox "und draussen" end if next loop Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 12. Mai 2009 Melden Teilen Geschrieben 12. Mai 2009 In dem Select wird ja nur auf die 2 Prozesse gefiltert. D.h. wenn die nicht laufen, ist "colProcesses" leer und wird beim "Foreach" genau gar nix machen. Daher kommt er nie in den Else-Zweig. Zitieren Link zu diesem Kommentar
NilsK 2.918 Geschrieben 12. Mai 2009 Melden Teilen Geschrieben 12. Mai 2009 Moin, fragen wir mal andersrum: Was willst du denn eigentlich erreichen? Dein Skript ist sehr umständlich. Bevor wir nun daran herumdoktern, wäre es sinnvoller, gleich über deine tatsächliche Anforderung zu sprechen. Gruß, Nils Zitieren Link zu diesem Kommentar
Sascha321 12 Geschrieben 12. Mai 2009 Autor Melden Teilen Geschrieben 12. Mai 2009 Hallo Danke für die Antworten, Das mit dem For Each wusste ich nicht, aber danke schön jetzt weiss ich warum es nicht geht. Zu der Funktion, wenn Windows aus dem Standby kommt soll das Script ein Programm starten wenn es noch nicht gestartet ist. Dann soll es noch vom Antivir das Werbefenster automatisch zu machen. Es sind zwei unabhängige Scripte die ich zusammen fügen wollte. Jedes Script ansich funktioniert, bin nur an dem For Each hängen geblieben. Eine Frage habe ich nich kann ich mir den Inhalt des "colProcesses" in einer MSGBOX anzeigen lassen? Danke Zitieren Link zu diesem Kommentar
Cybquest 36 Geschrieben 12. Mai 2009 Melden Teilen Geschrieben 12. Mai 2009 Eine Frage habe ich nich kann ich mir den Inhalt des "colProcesses" in einer MSGBOX anzeigen lassen? Welchen Inhalt? Nur die Namen der Prozesse? Z.B.: strProc="" For Each objProcess in colProcesses strProc = strProc & objProcess.name & chr(13) Next MsgBox strProc Zitieren Link zu diesem Kommentar
Sascha321 12 Geschrieben 12. Mai 2009 Autor Melden Teilen Geschrieben 12. Mai 2009 Jepp genau danke schööööööööön :D Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.