hobbystern
Goto Top

per BATCH Programm starten und d. Result (zBEXIT) abwarten

Ich muss ein Programm am leben erhalten welches von den Nutzern in einer Abteilung laufend ausversehen geschlossen wird.

Hallo,

ich suche eine Möglichkeit ein Programm (hier einen Hylafax Klienten) am Leben zu erhalten, wenn er geschlossen wird möchte ich das er neu gestartet wird.

Das Problem ist - in einer Abtlg. wird dieser HylafaxKlient (eine GUI, welche sich in die Taskleiste als Symbol verzieht) laufend geschlossen, in folge dessen werden die Mitarbeiter dort nicht mehr über dringend erhaltene Faxe informiert.

Ich würde das ganze eigentlich über BATCH lösen, eine BAT die das Programm in einer Schleife startet und den Exit Code auswertet oder einfach nur direkt neu startet. Meine letzte Berührung mit der Windows Batch ist allerdings noch vor Win98 gewesen ;)

Hat jemand eine Hilfestellung ?

Im vorab ein dickes Danke - ich bin eigentlich nur noch unter Unix unterwegs..

Grüsse, Stefan

Content-Key: 65908

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

Printed on: April 23, 2024 at 12:04 o'clock

Member: Kosh
Kosh Aug 10, 2007 at 10:29:29 (UTC)
Goto Top
@echo off
cls
title Application Watchdog
:appstart
echo %date% - %time% : Programm wird gestartet...
start /wait "Application Watchdog" "c:\applicationpath\app.exe"
echo %date% - %time% : Programm wurde geschlossen bzw. ist abgestürzt...
goto appstart

wenn du damit deine anwendung startest, wird genau das erreicht was du willst.
Member: Hobbystern
Hobbystern Aug 10, 2007 at 10:43:19 (UTC)
Goto Top
Ein dickes DANKE für eine Komplettlösung !

Klappt einwandfrei uns ist integriert - wie würdest Du das ganze im BG laufen lassen, per "/min" wird es ja lediglich minimiert, kann man in XP die gleichen Funktionen, die ich noch aus NT 4 kenne, nutzen (IMHO war das "instserv" um einen Dienst zu erstellen..)

Nochmals - um es nicht zu übersehen : DANKE : (!)

Grüsse, Stefan
Member: Kosh
Kosh Aug 10, 2007 at 13:08:46 (UTC)
Goto Top
face-smile

als erstes freuts mich mal das die die lösung zusagt.
zum ausblenden:
ich kenne keinen weg das dos-fenster auszublenden.
vielleicht lässt sich das script ja in wsh oder vbs ummünzen.
dann ließe sich das machen.
hab aber leider keine ahnung wie ;)

grüsse

Kosh
Member: Hobbystern
Hobbystern Aug 10, 2007 at 17:38:31 (UTC)
Goto Top
Hi Kosh,

so - ich habe einen Weg gefunden und möchte den hier auch nicht vorenthalten, man kann das ganze an Dienst mittels "sc" anlegen - in meinem Fall lautet die Syntax zB (aus dem Stehgreif) so :

sc create HylaStartDienst binpath= c:\datei.bat start= auto type= own displayname= HylafaxStartDienst

Mehr dazu gibt es hier.

Ich finde es sehr gut das Du mir so schnell und nett geholfen hast - ich als alter Microsoft-Skeptiker bin da anscheinend sehr drauf angewiesen, Danke nochmals und ein ruhiges WE !

EDIT : So ganz scheint sich das ganze nicht aktivieren zu lassen (Start Steuierungsanforderungsprobleme..)

Grüsse, Stefan
Member: Kosh
Kosh Aug 11, 2007 at 00:57:46 (UTC)
Goto Top
also mit sc wird das definitiv nicht funktionieren.

aber einen hab ich noch: (und zwar auf die schnelle geklaut... )

sProcessName = "meineapplikation.exe"  

sComputer = "."     
Set oWmi = GetObject("winmgmts:{impersonationLevel=impersonate}!\\" & sComputer & "\root\cimv2")  

Set oShell = CreateObject("WScript.Shell")  

Do
  Set colProcessList = oWmi.ExecQuery("Select * from Win32_Process Where Name = '" & sProcessName & "'")  

  If colProcessList.Count = 0 Then
     oShell.Run "C:\pfad\meineapplikation.exe", 1, False  
   End If

  WScript.Sleep 5 * 60 * 1000   ' 5 Minuten Wartezeit  
Loop
das ganze speichere als .vbs datei.

dieses skript ruft alle 5 min. ab ob der prozess "meineapplikation.exe" läuft.
tut er das nicht, wird er gestartet.

dir nun auch ein schönes WE

grüsse

Kosh
Member: Hobbystern
Hobbystern Aug 13, 2007 at 08:43:37 (UTC)
Goto Top
Hi Kosh,

Du machst Dich sehr beliebt ;) (!)

Das ganze funktioniert und dafür ein dickes DANKE ! Ich hoffe das WE war auch bei Dir so wie das Wetter (wunderbar) face-smile

Eine Frage noch - wie würdest Du das ganze unter Windows wiederholen, Lynux besitzt cron, Windows den Taskplaner, der aber kann ja eher nur terminierte oder tägliche/wö/monatliche Pläne ausführen...

Nochmals ganz deutlich : DANKE

Grüsse, Stefan
Member: Kosh
Kosh Aug 13, 2007 at 08:49:07 (UTC)
Goto Top
das script wiederholt sich selbsständig.

nimm einfach bei den clients das faxprogramm aus dem autostart raus.
dann ändere das skript deinem programm entsprechend.

dann einfach das script in den autostart oder per gruppenrichtlinie in den client.
das wars schon.

der rechner fährt hoch...
das script überprüft ob die faxsoftware läuft...
tuts natürlich nicht also wir die sw gestartet...
dann geht der scriptprozess für 5 minuten in den sleep modus....
nach 5 minuten kommt er wieder und guckt ob fax noch läuft...
wenn ja -> 5 min sleep
wenn nein -> fax wird gestartet ... -> 5 min sleep

undsoweiter......

/edit: ich denke ich werd das mal unter anleitungen stellen face-smile
Member: Kosh
Kosh Aug 13, 2007, updated at Oct 18, 2012 at 16:32:18 (UTC)
Goto Top
und hier ist sie auch schon:

Application Watchdog selbst gemacht mit WSH
Member: Hobbystern
Hobbystern Aug 13, 2007 at 09:10:48 (UTC)
Goto Top
:lach: Alles klar - mein Fehler - ich hatte die Schleife übersehen (uups) ..

natürlich klappt das so - und die Anleitung ist auch sehr schick ;)

Ich würde sagen wir machen nun hier zu und Du weisst das ich Dir dankbar bin.

Grüsse, Stefan