Programm nach gewisser Zeit beenden

betsi1988

Newbie
Registriert
Sep. 2012
Beiträge
3
Hallo!

So, dann will ich mal hoffen das mein erster Beitrag in diesem Forum auch direkt zum Erfolg führt!

Folgendes Problem: Wir haben bei uns in der Feuerwehr einen Alarmmonitor. Auf diesem Monitor wird das Alarmfax angezeigt, damit jeder Kamerad auch weiß, was jetzt anliegt. Da die Monitore nicht dauerhaft laufen sollen, werden die Monitore durch einen "MonitorWecker" geweckt, sobald AdobeReader geöffnet wird. Dies wird durch eine Batch-Datei ausgeführt.

Nun die Frage: Wie baue ich einen Timer ein, das sich erst Adobe Reader und danach MonitorWecker automatisch nach 35 Minuten wieder schließt? Den Inhalt der Batch sieht man hier:

@echo off
title Schleife

REM Variablen deklarieren
set task1="AcroRD32.exe"
set task2="MonitorWecker.exe"
set "Prog=C:\Neuer Ordner\MonitorWecker.lnk"

REM Beginn der Schleife

REM Überprüfen ob Acrobat Reader gestartet ist
:FindProc
tasklist | find /i %task1%
set err=%ERRORLEVEL%

REM Wenn Acrobat gestartet ist, soll das andere Skript gestartet werden
if %err%==0 goto Yes

REM wenn Acrobat nicht läuft, soll weiter überwacht werden
if %err%==1 goto No

REM Fall Acrobat ist gestartet
:Yes
REM überprüfen ob auch schon das Skript gestartet ist
tasklist | find /i %task2%
set err=%ERRORLEVEL%

REM wenn das Skript nicht gestartet ist, soll es ausgeführt werden
if %err%==1 goto Starten

REM wenn das Skript bereits gestartet ist, soll die Schleife von vorn beginnen
if %err%==0 goto FindProc

REM Fall Acrobat ist nicht gestartet, Schleife beginnt von vorn
:No
goto FindProc

REM Acrobat ist gestartet, Skript wird ebenfalls gestartet
:Starten
start "" "%Prog%"


REM Schleife soll von vorn beginnen
goto FindProc

REM Ende der Schleife
Pause
 
Den Monitor kannst ja mit Hilfe der Energiesteuerung wieder ausschalten, da kannst du beliebige Zeiten von 1min bis 5h oder so einstellen (Win7).
Für den Batchtimer könntest du einen ping-Befehl auf irgend einen Server ausführen, hierbei kannst du eine Zeit angeben, wie lange er pingen soll. Diese Zeit setzt du auf 35min, danach beendet der ping, und durch diesen Timer kannst du deinen Acrobat auch beenden.

Acrobat starten
35 min ping (am besten auf einen nicht vorhandenen Server)
Acrobat beenden.

Sollte klappen, da in einer batch alles der Reihe nach abgearbeitet wird.
 
wie das dann genau in der Realität auszusehen hat, kannst du mir nicht sagen, oder? Ein Freund von mir hat die Batch erstellt und ist jetzt für drei Wochen im Urlaub und nicht erreichbar. Deswegen muss ich diese Datei fertig haben!
Der Energiesparmodus läuft. Problem nur: Falls Adobe Reader nicht geschlossen ist und ein neuer Einsatz mit neuem Alarmfax kommt, wecken die Bildschirme nicht wieder auf und das Fax (also die neue PDF-Datei) wird dann auf dem falschen Monitor angezeigt....

In der Batch muss also ein Timer rein (wie der aussieht keine Ahnung, deswegen hier auch meine Frage ;);) ), damit Adobe Reader und der MonitorWecker nach 35 Minuten nach Öffnung geschlossen werden! Nur die beiden Programme, die Batch läuft dauerhaft!
 
Bin auch nicht unbedingt ein Coder, aber hier mal ein Versuch.

ping -n 2100 192.168.178.1

-n ist die Anzahl der Pingversuche, die 2100 ergeben sich aus 60s *35min, ein Pingversuch dauert 1 Sek.

nun muss das ganze natürlich noch in deine Batch eingepackt werden, der Monitor lässt sich, wie gesagt, über die Energieverwaltung steuern (zumindest was das abschalten angeht)
 
Du kannst beide Prozesse per taskkill schließen und mit ping... lässt du die 35 Minuten vorher durchlaufen.
Code:
ping localhost -n 2100 >nul
taskkill /im "task1"
taskkill /im "task2"
 
Klasse, besten Dank für eure sehr schnelle Antwort !
Funktioniert!

Schönes Wochenende :)
 
Zurück
Oben