Programm starten und beenden per Script

Hallo IPSler,

gibt es eine Möglichkeit (oder vieleicht schon ein fertiges Script) mit dem ich ein Programm zu einer bestimmten Zeit starten und nach einer definierten Zeit wieder beenden kann?

Grüße

Mirco

Hallo coolice,

wenn Du ein externes Programm meinst dann hilft Dir sicherlich IPS_Execute oder IPS_ExecuteEx weiter.

Das Ganze mit einem Ereignis versehen und wenn das zu startende und beendente Programm die richtigen Parameter unterstützt ist es auch schon erledigt.

Vielleicht nennst Du uns das Programm und den Sinn was es machen soll, dann können wir Dir detailierte helfen.

Ja natürlich. Es handelt sich um das Programm go1984. Dieses ist ein Prog. mit dem ich meine IP Cams verwalte und steuere.

Grüße Mirco

Hallo Mirco,

also das starten sollte das kleinste Problem sein.

IPS_ExecuteEx("x:\\pfad\programm.exe","", false, false, 0);

startet das Programm.

Das beenden ist jetzt ein Thema ob go1984 Parameter annimmt um es per Commandozeile zu beenden. Falls nicht gibt es immer den harten Weg ein Programm zu beenden, dies sollte aber eine Ausnahme darstellen.

Zu erwähnen sei hier das Windowsprogramm TASKKILL.EXE. Dies entweder direkt über IPS_ExecuteEx aufgerufen oder in eine Batchdatei gepackt und dieses per IPS_Execute aufrufen.

Ich habe es gerade mal mit

IPS_Execute("C:\Programme\go1984\go1984.exe", "", false, false);

ausprobiert. Leider ohne Erfolg. Du sagst das das Prog einige Parameter erfüllen muss. Tja dieses erfüllt sie anscheinend nicht. :frowning:

Mirco

Probiere mal

IPS_ExecuteEx("C:\Programme\go1984\go1984.exe", "", false, false, 0);  

Warning: Wrong parameter count for ips_execute() in [ipcam server starten] on line 2

Äh Fehler

IPS_Execute("C:\Programme\go1984\go1984.exe", "", false, false);

sollte das Prog starten. Tut es leider nicht.

IPS_ExecuteEx("C:\Programme\go1984\go1984.exe", "", false, false, 0);

sollte es doch wieder beenden. Auch dieses leider ohne Erfolg.

Mirco

Was steht denn bei dir in der 2. Zeile?
Anbei eine Beispielzeile, aus einem meiner Skripte, mit dem ich meine TV Software über IPS starte:

<?
IPS_ExecuteEX(„C:\Programme\Nebula\DigiTV\DigiTV-HD.exe“, „“, false, false,0);
?>

Wenn du sie auf deine Datei änderst und so mal in ein neues Skript einfügst, muss es gehen.

– Edit –
Das mit dem Beenden hast du wohl falsch verstanden. Es gibt keinen IPS Befehl um ein Programm zu beenden, außer dein Programm bietet dafür einen Parameter, oder du nutzt ein externes Programm, das andere Programme „abschießt“ wie z.B. Taskkill.exe

Hallo,

vielleicht musst du / anstatt \ nehmen oder die Backslash maskieren.

Probier erst mal:

IPS_Execute("C:/Programme/go1984/go1984.exe", "", false, false);  

Schöne Grüße
Thomas

Hallo Thomas,

habe ich bereits probiert. Startet auch so nicht. Danke trotzdem

Mirco

Hallo Obi,

Die kleine Kommandozeile zieht bei mir genau so aus wie Du sie vorschlägst.
Bekomme zwar keine Fehlermeldung doch starten tut es leider auch nicht. Werde mir wohl einen anderen Weg überlegen müssen.

Grüße Mirco

Hi,

habe gestern auch mit IPSExecute kämpfen müssen.

IPS_Execute(„C:\IP-Symcon\custom_xx\xxx est.cmd“, „“, false, false);

funktionierte nicht. Irgendwann bekam ich dann eine Fehlermeldung dass der Pfad ungültig sei. Ich habe die Datei testweise ins root kopiert und dann ging es:

IPS_Execute(„C: est.cmd“, „“, false, false);

Viele Grüße
Christian

Bitte beachten, dass Vista eine Vollkommen neue Rechtestruktur hat. Solltet ihr Vista einsetzen so muss dem angemeldeten User explizit das Recht auf den betreffenden Ordner gewährt werden. Der Ersteller des Ordners hat nicht zwangsweise Vollzugriff auf die gesamte Ordnerstruktur.

UND Ips wird als Dienst gestartet. Der Dienst gehört nicht dem angemeldeten Benutzer und hat andere Rechte. Das bedeutet bloß weil ihr die Datei doppelklicken dürft, darf IPS das noch lange nicht. IPS_Execute könnt ihr also quasi vergessen. dafür gibts IPS_ExecuteEx.

Und Mirco, ein zweites mal starten beendet den Task nicht. Wenn dein Programm sich nicht über die Komanndozeile beenden lässt, dann lässt es sich nicht über die Kommandozeile beenden. Lies für richtige Parametrierung bitte die Bedienungsanleitung deiner Software. Nur dort hast du eine gewisse chance etwas zu finden.

Gruß,

Toni

  • Der von Vista mittelprächtig angenervt ist -

Hallo,

hier kurz meine Versuche:

// Funktioniert nicht:
IPS_Execute("C:\Programme\ip-symcon	est	est.bat", "", false, false);

// Funktioniert:
IPS_Execute("C:\\Programme\\ip-symcon\	est\	est.bat", "", false, false);
IPS_Execute("C:/Programme/ip-symcon/test/test.bat", "", false, false);

Schöne Grüße
Thomas

Wenn man die Anführungszeichen richtig setzt geht auch das.

Unter Vista - nur dafür kann ichs grad testen - wird dann der Task als Systembenutzer gestartet weil der IPS Dienst auch dem Systembenutzer gehört.

Mit diesem Code hingegen kann man den Userdesktop erreichen:

IPS_ExecuteEx('c:\Program Files\IP-Symcon	est\Showmessage.exe', 'Moin moin ihr Dödel', false, false, 1);

Toni