Program starten und schließen via batch?

Hallo,

ich möchte gerne ein programm, dass beim starten des rechners mitstartet nach 4 Stunden schließen und sofort wieder starten. Mit dem Taskmanager hab ich das nicht hinbekommen. Gibt es eine Möglichkeit dieses per batch datei zu machen?

Für jede Hilfe bin sehr dankbar

Gruß

Peppi

Hallo Peppi,

schau Dir mal das Kommando „taskkill“ an, wenn es sich um Windows handelt. Bei UNIX-Derivaten sollte „kill“ passen.

Um ggf. die Prozess-ID zu ermitteln:

  • Windows: tasklist
  • UNIX: ps

Für die Zeitsteuerung gibt es „at“. (Unter UNIX auch noch „cron“)

Gruß
Volkmar

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Interressant! Nur bei mir (XP) hat es nicht funktioniert mit „tasklist“ oder taskkill… Brauch ich Professional?

Gruß PcFreak92

Hab’s mit taskkill versucht leider ohne erfolg. Irgendwie ist mir die syntax noch nicht klar:

@echo off
start c:…exe

funktioniert

@echo off
taskkill c:…exe

funktioniert nicht

Na, ich werd mal im Keller wühlen. Vielleicht finde ich noch mein altes DOS 4 Handbuch.

Gruß

Fred

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]

Hab’s mit taskkill versucht leider ohne erfolg. Irgendwie ist
mir die syntax noch nicht klar:

Hi Peppi,

bringt dich das weiter?:

http://www.wintotal-forum.de/index.php/topic,68858.0…

Gruß
Reinhard

Hallo,

manchmal vergesse ich es halt :frowning:

taskkill und taklist sind Bestandteil von Win XP Professional

Sorry
Volkmar

Interressant! Nur bei mir (XP) hat es nicht funktioniert mit
„tasklist“ oder taskkill… Brauch ich Professional?

Gruß PcFreak92

Also, wenn taskkill bei Dir gefunden wird (nochmals Sorry, gibt es nur bei Win XP Prof) dann hilft Dir vielleicht diese Beschreibung http://www.microsoft.com/technet/prodtechnol/windows…

Ansonsten habe ich noch ein wsh-(vbs-)Skript:------ SCHNIPP: kill.vbs -----
Set WshShell = WScript.CreateObject(„WScript.Shell“)
Set WshSysEnv = WshShell.Environment(„PROCESS“)
uname = WshSysEnv(„USERNAME“)
strComputer = „.“
Set objWMIService = GetObject(„winmgmts:“ & „{impersonationLevel=impersonate}!\“ & strComputer & „\root\cimv2“)
Set objClargs = WScript.Arguments
If objClargs.Count = 1 Then
Set colProcesses = objWMIService.ExecQuery( „select * from win32_process where name=’“ & objClargs(0) & „’“ )
If colProcesses.count 0 Then
For Each objProcess In colProcesses
If objProcess.GetOwner ( User, Domain ) = 0 Then
‚‘ Nur eigene Prozesse killen
If trim(User) = trim(uname) Then
objProcess.terminate()
End If
End If
Next
Else
Wscript.echo „Programm " & objClargs(0) & " nicht gefunden.“
End if
Else
Wscript.echo „Falscher Aufruf“
End if
----- SCHNAPP: kill.vbs -----Das Skript so abspeichern, dass es in PATH gefunden wird und Sicherstellen, dass VBS-Dateien mit wscript und/oder cscript verbunden sind und die Dateiendung in der Umgebungsvariablen „PATHEXT“ enthalten ist.

Dann sollte z.B. der Aufruf „kill notepad.exe“ alle offenen Notepads schließen und zwar ohne Nachfrage, ob gespeichert werden soll.
Das funktioniert auch auf Win XP Home Edition.

Gruß
Volkmar

Hab’s mit taskkill versucht leider ohne erfolg. Irgendwie ist
mir die syntax noch nicht klar:

@echo off
start c:…exe

funktioniert

@echo off
taskkill c:…exe

funktioniert nicht

Na, ich werd mal im Keller wühlen. Vielleicht finde ich noch
mein altes DOS 4 Handbuch.

Gruß

Fred

Hi,

vielen Dank für den Tip zu Taskkill.exe. Ich kann jetzt den Prozess beenden und auch wieder starten. Alles was jetzt noch fehlt ist zeitliche Verzögerung. Mit „at“ könnte ich datum und Uhrzeit festlegen. Die Befehle „SLEEP“ und „TIMEOUT“ funktionieren irgendwie nicht so richtig.

Gruß

Fred

Hallo,

ich habs jetzt dank einiger Hilfe hingekriegt:

sleep 14400
taskkill /F /IM [Prozess]
c:… .exe

Sleep.exe muss man sich erst runterladen (z.B. hier http://www.supernull.de/download.htm )
und in c:\windows kopieren

Gruß

Fred