
94502
14.10.2010
Batch beim start von z.b. iexplorer starten
Hallo
ich würde gerne wissen ob es geht eine batch datei zu schreiben, die sich beim start von einem belibigen programm öffnet in der soetwas steht wie Hallo sie haben das Programm ... geöffnet und zusätzlich (nicht unbedingt nötig) soll eine Programminfo erscheinen
ich würde gerne wissen ob es geht eine batch datei zu schreiben, die sich beim start von einem belibigen programm öffnet in der soetwas steht wie Hallo sie haben das Programm ... geöffnet und zusätzlich (nicht unbedingt nötig) soll eine Programminfo erscheinen
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 153071
Url: https://administrator.de/forum/batch-beim-start-von-z-b-iexplorer-starten-153071.html
Ausgedruckt am: 21.04.2025 um 10:04 Uhr
3 Kommentare
Neuester Kommentar
Hallo,
aufgrund Deiner übrigen Threads ist mein Geduldsfaden zwar mindestens so stark gespannt, wie die E-Saite einer Bass-Gitarre (wenn wir mal bei der G-Saite sind wird's ungemütlich
), aber um den Mindestanforderungen der Höflichkeit zu genügen, verliere ich hier nochmal ein paar Worte zur Funktionsweise meines Schnipsels.
Der Befehl TASKLIST gibt eine Liste aller momentan laufenden Programme aus. Seine Ausgabe wird aber nicht angezeigt, sondern durch das | über eine Pipeline an den Befehl FINDSTR weitergeleitet. Der sucht wegen dem ^ am Anfang einer Zeile nach dem Wort iexplore.exe und berücksichtigt dabei wegen /i die Groß-/Kleinschreibung nicht. Die Ausgabe von FINDSTR wird aber auch nicht angezeigt, sondern wegen >NUL verschluckt. FINDSTR liefert jedoch bei erfolgreicher Suche als Ergebnis 0 zurück, bei Misserfolg einen von 0 verschiedenen Wert (so machen das die meisten Konsolenprogramme, also Programme ohne grafische Benutzeroberfläche, Stichwort ERRORLEVEL).
Wenn also 0 (Erfolg) zurückgeliefert wird (d.h. der Internetexplorer ist gestartet), werden durch den Operator && die Befehle
ausgeführt. Das bedeutet, daß das Batchfile IExploreRunning.cmd nur ausgeführt wird, wenn die Variable started den Wert 0 hat. Nach Ausführung des Batchfiles wird started auf 1 gesetzt, damit IExploreRunning.cmd beim nächsten Schleifendurchlauf nicht schon wieder aufgerufen wird.
ausgeführt. Die Variable wird also wieder auf 0 gesetzt. Dadurch würde nach einem Start von iexplore.exe wieder das Batchfile IExploreRunning.cmd ausgeführt werden können.
Das ganze Skript müsste in den Autostart-Ordner im Startmenü eingebunden werden. Es läuft dann ständig im Hintergrund als eine Art Wachhund, der aufpasst, ob der Internetexplorer gestartet wird.
Um Deine eigentliche Frage zu beantworten: Möglich ist fast alles, kommt auf den Aufwand an, den man treibt. Eine Möglichkeit wäre, alle laufenden Programme, die von TASKLIST ausgegeben werden, zu speichern und beim nächsten Schleifendurchlauf zu überprüfen, ob ein neues Programm in der Liste aufgetaucht ist bzw. ein Programm aus der alten Liste fehlt (also beendet wurde). Das wäre doch mal ein hervorragendes Übungsprojekt für Dich, wenn Du tatsächlich Batchskripting lernen willst. Wenn Du dann zu einer Lösung kommen würdest, hätte sich auch automatisch das Niveau Deiner Fragen/Tipps/Anleitungen um einige Stufen gesteigert.
Gruß
Friemler
aufgrund Deiner übrigen Threads ist mein Geduldsfaden zwar mindestens so stark gespannt, wie die E-Saite einer Bass-Gitarre (wenn wir mal bei der G-Saite sind wird's ungemütlich
Der Befehl TASKLIST gibt eine Liste aller momentan laufenden Programme aus. Seine Ausgabe wird aber nicht angezeigt, sondern durch das | über eine Pipeline an den Befehl FINDSTR weitergeleitet. Der sucht wegen dem ^ am Anfang einer Zeile nach dem Wort iexplore.exe und berücksichtigt dabei wegen /i die Groß-/Kleinschreibung nicht. Die Ausgabe von FINDSTR wird aber auch nicht angezeigt, sondern wegen >NUL verschluckt. FINDSTR liefert jedoch bei erfolgreicher Suche als Ergebnis 0 zurück, bei Misserfolg einen von 0 verschiedenen Wert (so machen das die meisten Konsolenprogramme, also Programme ohne grafische Benutzeroberfläche, Stichwort ERRORLEVEL).
Wenn also 0 (Erfolg) zurückgeliefert wird (d.h. der Internetexplorer ist gestartet), werden durch den Operator && die Befehle
(if %started% equ 0 call IExploreRunning.cmd & set "started=1")
(set "started=0")
Das ganze Skript müsste in den Autostart-Ordner im Startmenü eingebunden werden. Es läuft dann ständig im Hintergrund als eine Art Wachhund, der aufpasst, ob der Internetexplorer gestartet wird.
Um Deine eigentliche Frage zu beantworten: Möglich ist fast alles, kommt auf den Aufwand an, den man treibt. Eine Möglichkeit wäre, alle laufenden Programme, die von TASKLIST ausgegeben werden, zu speichern und beim nächsten Schleifendurchlauf zu überprüfen, ob ein neues Programm in der Liste aufgetaucht ist bzw. ein Programm aus der alten Liste fehlt (also beendet wurde). Das wäre doch mal ein hervorragendes Übungsprojekt für Dich, wenn Du tatsächlich Batchskripting lernen willst. Wenn Du dann zu einer Lösung kommen würdest, hätte sich auch automatisch das Niveau Deiner Fragen/Tipps/Anleitungen um einige Stufen gesteigert.
Gruß
Friemler