Nircmd erstellt immer neuen Prozess

Hallo,
mit diesem Code schalte ich meinen Monitor an.

IPS_ExecuteEx("C:/nircmd.exe","monitor off",false,false,1);

Funktioniert auch wunderbar. Habe jedoch jetzt festgestellt, dass nircmd.exe bei jeder Ausführung des Scriptes einen neuen Prozess startet und der alte nicht geschlossen wird.

Dadurch entstehen natürlich nach gewisser Zeit eine Unmenge an geöffneter Prozesse, die mein System belasten.
Ist das bei euch auch so, oder wird der Prozezz bei euch wieder geschlossen?

Grüße, Jürgen

Habe selbst die Lösung gefunden.
Mit dem Code

IPS_ExecuteEx("C:/nircmd.exe","monitor async_on",false,false,1);

und

IPS_ExecuteEx("C:/nircmd.exe","monitor async_off",false,false,1);

funktionierts unter Windows 7 64bit und kein Prozess bleibt mehr hängen.

Hallo Jürgen,

ich habe genau das gleiche vor; ich möchte meinen Monitor scriptgesteuert ein bzw. ausschalten.
Bei mir funktioniert es allerdings nicht. Wenn ich es von Hand ausführe, dann geht es. Wenn ich es über IPS versuche geht es nicht. Wenn ich den Befehl in einen Batch-File packe und diese von Hand starte, dann geht es auch; wenn ich das .bat per IPS ausführen lasse, dann geht es wieder nicht.
Woran kann das liegen?

Habe jetzt leider auch keine Idee.
Versuche mal andere Nircmd-Befehle. Vielleicht liegt es auch daran, dass ich als admin angemeldet bin.

Hoffe, dass du es noch hin bekommst.

Viele Grüße,
Jürgen

Schon mal danke für Deine schnelle Antwort.
Ich habe es mit anderen Befehlen versucht; „mutesysvolume 2“ um zwischen Soundausgabe und mute zu togglen. Das funktioniert auch super. Und als Admin bin ich auch angemeldet. Ich habe es mit der 32 bit und der 64 bit Version versucht (welche nutzt Du?). Alles ohne Erfolg. :confused:

Hallo zusammen,

ich brauche hier echt mal Eure Hilfe. Hat jemand die Konstellation: IPS auf Rechner installiert und direkt an diesem Rechner einen Touchscreen, der als Master-Eingabe-Medium dient?
Ich komme hier nicht weiter und weiß nicht mehr was ich noch testen soll. Wenn Ihr Euch das Stück Software „nircmd“ (http://www.nirsoft.net/utils/nircmd.html) auf Euren IPS ladet und dann im CommandShell z.B. ein „nircmd.exe mutesysvolume 2“ ausführt, dann sollte die Systemlautstärke stumm geschaltet werden … nochmals das Kommando, dann wieder Ton (mute toggle). Wenn Ihr nun aus IPS heraus ein

IPS_ExecuteEx("C:/nircmd.exe /*(Pfad ggf. anpassen)*/","mutesysvolume 2",false,false,0);

auslöst, dann sollte das auch gehen. Ein

IPS_ExecuteEx("C:/nircmd.exe /*(Pfad ggf. anpassen)*/","monitor off",false,false,0);

geht jedoch nicht. Es fliegt ein Fehler

Warning: A call to an OS function failed in C:\IP-Symcon\scripts\29916.ips.php on line …
.
Ich habe auch schon versucht alles in einen batch-Datei zu packen. Ebenfalls ohne Erfolg. Ich habe auch schon den Virenscanner in Verdacht gehabt … deaktiviert … ebenfalls kein Erfolg.
Jemand eine Idee? Ich bin für jeden Hinweis dankbar.

Hallo honk0504,

ich setze bei mir die Lautstärke mit

IPS_ExecuteEx(IPS_GetKernelDir()."nircmd.exe", "setsysvolume $volume" , false, false, 1);

auf die gewünschte ($volume) Lautstärke.

Den Monitor schalte ich mit

IPS_ExecuteEx(IPS_GetKernelDir()."nircmd.exe", "monitor off", true, true, -1);

aus.

Beides funktioniert.

Viele Grüße

Burkhard

Hallo Burkhard,

vielen Dank für Deine schnelle Antwort. Ich habe Deinen Vorschlag:

IPS_ExecuteEx(IPS_GetKernelDir()."nircmd.exe", "monitor off", true, true, -1);

umgesetzt. Leider … funktioniert es in meinem Fall nicht.

Warning: A call to an OS function failed in C:\IP-Symcon\scripts\29916.ips.php on line 3

Ich habe eine Vermutung; ich nutze das „IPSSonos“ Paket in der „IPSLibrary“. Um z.B. die Sprachausgabe auf Sonos Lautsprechern realisieren zu können musste ich den IPSymcon Dienst auf den User umhängen. Vorher „Lokaler Dienst“ (oder Netzwerkdienst … weiß nicht mehr genau) und nun der User, der angemeldet ist. Kann das die Ursache sein?

GENAU DAS ist das Problem. Wenn man unter Windows Vista/7 einen Ausgabe per TTS (Text to Speech) realisieren möchte, dann muss man den IPS DIenst auf einen lokalen Benutzer umhängen. DAS wiederum sperrt das Ausführen von Programmen die im Systemkontext laufen. grrr