PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Ein Programm im Hintergrund (neu) starten


Gaiathea
2011-07-08, 15:30:42
Guten Tag liebe Mitglieder dieses Forums.

Zunächst einmal muss ich sagen, das ich nciht sicher bin ob ich hier im richtigen Bereich poste, da es jedoch um die Programmierung einer CMD geht, könnte es hier richtig sein. Nun aber zum wichtigen Teil. Mich beschäftigt seit einigen Tagen ein kleines Problem. Und zwar habe ich ein Programm X. Ich möchtet nun, dass dieses Programm stündlich neu gestartet wird (also die alte Instanz beenden und eine neue starten). Das ganze soll so ablaufen, das ich davon nichts mitbekomme.

Bisher habe ich das Problem über die "geplanten Tasks" von Windows gelöst. Dafür habe ich eine Batch-Dateien geschrieben, welche das Programm schließt und es anschließend neu startet. Das ganze funktioniert soweit auch ganz gut, mit der kleinen Einschränkung das ich das CMD-Fenster darin jedes mal zu Gesicht bekomme. Das Sehen der Fenster während ich auf dem Desktop bin stört mich persönlich nicht. Es geht einzig und allein darum, dass wenn ich am Rechner einen Film schaue oder ein Spiel im Vollbild spiele, diese Spiele den Vollbildmodus verlassen und in den Fenstermodus gehen (z.B. Battlefield BC2) oder aber Minimiert werden (z.B WoW). Bei Filmen sieht man meist das CMD-Fenster kurz aufleuchten.

Die Frage ist daher nun wie man dieses Problem (Neustart des Programms nach 1h) lösen kann ohne das ich davon etwas mitbekomme (wie der Fenstermodus oder das minimieren). Gedacht hatte ich schon daran es als Systemdienst zu registrieren, bin dann aber auch wieder daran gescheitert, dass dieser ja auch irgendwie gestartet werden muss (wofür wahrscheinlich wieder eine cmd erforderlich ist).

Ich hoffe ihr könnt mir da in dieser Hinsicht ein wenig weiter helfen. (Und falls ihr noch weitere Infos braucht, fragt ruhig)

Noch eine Info zm System:
Windows 7 Professional (aktuelle Updates)

Marscel
2011-07-08, 16:05:59
Anstatt die Batch-Datei als Task zu verwenden, verwendest du start.exe. Als Argumente nutzt du dann z.B.

/MIN script.bat

Dann sollte das Fenster minimiert starten. Wenn das funktioniert, kannst du auch /B probieren, statt /MIN, dann soll kein Fenster erscheinen.

Gaiathea
2011-07-08, 16:14:11
Hi Marscel,

Erstaml bedanke ich mich für die Info (und die Hoffnung, das ich dieses Problem nun doch lösen kann).

Jedoch verstehe ich im Moment noch nicht was du mit der Start.exe meinst. soll ich die CMD die den Prozess killt und anschließend startet in *.exe umbenennen oder ist diese Start.exe ein Programm?

Ein kleine Anleitung dazu wär nett.

Marscel
2011-07-08, 16:29:45
Vergiss, was ich gesagt habe.

Entgegen meiner Erwartung ist start kein eigenes Programm, sondern ein in die Konsole eingebauter Befehl. Womit wir natürlich nicht weiterkommen.

Gaiathea
2011-07-20, 14:07:49
Ist dir / euch mittlerweile eine bessere Lösung eingefallen oder gibt es schlicht und ergreifend keine?

redfalcon
2011-07-20, 14:11:43
hstart (http://www.ntwind.com/software/utilities/hstart.html) + Geplanter Task mit der Batchdatei, nutze ich z.B. um meine locate32 Datenbank zu aktualisieren, ohne dass man davon was mitbekommt.

MooN
2011-07-20, 14:23:51
Das funktioniert z.B. auch, aber der taskkill lässt auch ein CMD-Fenster erscheinen. Selbiges geschieht, wenn man anstatt TaskKill PsKill (http://technet.microsoft.com/de-de/sysinternals/bb896683) verwendet.

http://www.bilderload.com/thumb/124716/taskZDUMK.jpg (http://www.bilderload.com/bild/124716/taskZDUMK.jpg)

Gaiathea
2011-07-21, 11:33:55
hstart (http://www.ntwind.com/software/utilities/hstart.html) + Geplanter Task mit der Batchdatei, nutze ich z.B. um meine locate32 Datenbank zu aktualisieren, ohne dass man davon was mitbekommt.

Das Programm klingt doch genau nach dem was ich gesucht habe.
Ich müsste demnach nur eine neue *.bat Datei schreiben die folgendes beinhaltet:
hstart /NOCONSOLE "kill.bat" "start.bat" und das als geplanten Task?

Werde ich heute Abend mal ausprobieren (Bin grad auf Arbeit). Klingt definitv gut.

redfalcon
2011-07-21, 11:40:09
Ich müsste demnach nur eine neue *.bat Datei schreiben die folgendes beinhaltet:
hstart /NOCONSOLE "kill.bat" "start.bat" und das als geplanten Task?


Genau, wobei ich hstart direkt als geplanten Task starke und das auszuführende Programm dann als Argument übergebe:
http://www.abload.de/img/clipboard01sm1u.jpg

Gaiathea
2011-07-22, 10:45:56
Ahh alles klar. Gut dann wirds heute Abend ausprobiert.

pollux
2011-07-22, 11:14:56
Du könntest dein Programm auch per instsrv.exe und srvany.exe aus den Resource Kit Tools als Dienst registrieren. Den Dienst dann per sc.exe stoppen/starten.
http://support.microsoft.com/default.aspx?scid=kb;de;137890
Müsste auch unter Win7 funktionieren oder?

Gaiathea
2011-07-31, 17:36:43
Genau, wobei ich hstart direkt als geplanten Task starke und das auszuführende Programm dann als Argument übergebe:
http://www.abload.de/img/clipboard01sm1u.jpg

So, da ich die Tage nicht dazu gekommen bin es aus zu probieren, hab ich es erst dieses WE gemacht.
Am Anfang wollt ich das Programm einfach starten, was jedoch nicht ging (nur mit Bat-Datei).

Dank deinem Bild wusste ich jedoch wie es geht, und hab es genau so eingestellt. Nun läuft der Task im Hintergrund und die nervigen Popups sind endlich weg.

Vielen dank nochmal.