6741
04.07.2007, aktualisiert am 06.04.2008
7710
4
0
über Tasklist per Taskkill einen Task killen der länger läuft, aber auch mehrfach ausgeführt wird
Hallo,
ich würde gerne ein Autoit schreiben, dass mir die Task überprüft.
BS: Windows XP Pro Sp2
Nehmen wird mal an, ich starte den Firefox mehrfach. Jetzt möcht ich die Sitzung, killen die länger z.b 5min läuft.
Ich weiß das man über die Session ID und der Laufzeit das machen könnte.
Leider weiß ich nicht wie man es in eine Zeile schreibt.
Mit Firefox ist es nur ein Beispiel.
gruß ..
ich würde gerne ein Autoit schreiben, dass mir die Task überprüft.
BS: Windows XP Pro Sp2
Nehmen wird mal an, ich starte den Firefox mehrfach. Jetzt möcht ich die Sitzung, killen die länger z.b 5min läuft.
Ich weiß das man über die Session ID und der Laufzeit das machen könnte.
Leider weiß ich nicht wie man es in eine Zeile schreibt.
Mit Firefox ist es nur ein Beispiel.
gruß ..
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 63034
Url: https://administrator.de/forum/ueber-tasklist-per-taskkill-einen-task-killen-der-laenger-laeuft-aber-auch-mehrfach-ausgefuehrt-wird-63034.html
Ausgedruckt am: 26.12.2024 um 13:12 Uhr
4 Kommentare
Neuester Kommentar
Hallo firewalldevil!
AutoIt kann ich nicht anbieten, aber wenn es VBS sein dürfte:
Das Script erwartet den (vollständigen) Namen eines Prozesses als Argument und beendet außer der neuesten (zuletzt erstellten) alle weiteren Instanzen des Prozesses. Beispiel:
Grüße
bastla
AutoIt kann ich nicht anbieten, aber wenn es VBS sein dürfte:
'KeepLatest.vbs
If WScript.Arguments.Count = 0 Then WScript.Quit
strProcName = LCase(WScript.Arguments(0))
strComputer = "."
Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\CIMV2")
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process",,48)
strLatest = ""
For Each objItem in colItems
If LCase(objItem.Name) = strProcName Then
If objItem.CreationDate > strLatest Then strLatest = objItem.CreationDate
End If
Next
intCount = 0
Set colItems = objWMIService.ExecQuery("SELECT * FROM Win32_Process",,48)
For Each objItem in colItems
If LCase(objItem.Name) = strProcName Then
If objItem.CreationDate <> strLatest Then
objItem.Terminate
intCount = intCount + 1
End If
End If
Next
WScript.Echo intCount & " Instanzen von " & strProcName & " beendet."
KeepLatest.vbs "firefox.exe"
Grüße
bastla
hi bastla,
vielen Dank für deine Mühe,
werde es testen ...
gruß
vielen Dank für deine Mühe,
werde es testen ...
gruß
Hm, firewalldevil,
das sieht dann danach aus, als wäre da eine Endlosschleife drin, wenn der Schnipsel immer noch läuft.
Wollen wir gemeinsam den Thread abbrechen und in den Papierkorb umbetten?
So ist er ja für nachwachsende Generationen wertlos bzw niemand wird sich jemals trauen, das VBSchen anzustarten...
Grüße
Biber