Seite 1 von 1

[Done] Wie das CMD-Fenster einer Batch in der Taskleiste ver

Verfasst: 03.10.2016 18:15
von Kurzer
Hallo,

kennt jemand eine Lösung für folgendes Problem?

Ich nutze ein Programm zur Steuerung von anderen Rechnern im Netzwerk (InputDirector). Damit kann man mit einer Tastatur und einer Maus x beliebig viele Rechner steuern.

In der aktuellen Version des Programms ist es nun so, dass immer ein Dienst im Hintergrund läuft - also schon direkt nach dem booten von Windows. Da ich nicht jeden Tag auf jedem Rechner dieses Tool einsetze, möchte ich, dass der Dienst wirklich nur dann läuft, wenn ich das Tool nutze.

Soweit kein Problem. Ich habe mir eine passende Batchdatei geschrieben die erst den Dienst startet, dann das Programm und nach Beendigung des Programms den Dienst wieder stoppt.

Code: Alles auswählen

sc config InputDirector start= demand
sc start InputDirector
InputDirector.exe
sc stop InputDirector
Das klappt wunderbar, nur habe ich die ganze Zeit, während das Tool läuft zusätzlich das Shell-Fenster in der Taskleiste liegen. Und genau das soll da weg.

Bild

Wie kommt man dem am besten bei?

Re: Wie das CMD-Fenster einer Batch in der Taskleiste verber

Verfasst: 03.10.2016 18:48
von RSBasic
Du kannst ganz einfach mit PB versteckt starten:

Code: Alles auswählen

RunProgram("cmd.exe", "/c D:\DeineBatchDatei.bat", "", #PB_Program_Hide)

Re: Wie das CMD-Fenster einer Batch in der Taskleiste verber

Verfasst: 03.10.2016 19:37
von Kurzer
... aber habe ich dann nicht wieder das Programm Icon meines PB Programms in der Taskleiste hängen solange das Tool läuft?

Re: Wie das CMD-Fenster einer Batch in der Taskleiste verber

Verfasst: 03.10.2016 19:42
von RSBasic
Wenn dein Programm kein Fenster enthält, dann gibt es keine Taskleistenschaltfläche.
Außerdem läuft dein Programm nur ganz kurz, da deine Batchdatei mit RunProgram() asynchron aufgerufen wird.

Re: Wie das CMD-Fenster einer Batch in der Taskleiste verber

Verfasst: 03.10.2016 20:39
von Kurzer

Code: Alles auswählen

RunProgram("StartID.bat", "", GetCurrentDirectory(), #PB_Program_Hide)
Das geht tatsächlich mit dem asynchronen Start. :allright:

Danke!