IPS_ExecuteEx von Wind. 8 - Programmen geht nicht mehr

Hallo,

hab bei Bedarf über meinen Touchscreen die Windows-Onscreen-Tastertur wie folgt aufgerufen:

<?
 IPS_ExecuteEx("c:\windows\system32\osk.exe","",false,false,0);
?>

Hab gerade bemerkt das es nicht mehr geht:

Warning:  A call to an OS function failed in [Eigene Einstellungen\Bedienung\Windows on-screen-Tastatur aufrufen] on line 2

Liegt das an der Umstellung von XP auf WIn81? Kann ich das irgendwie lösen?

Gruß
hardlog

Das Verzeichnis stimmt nicht mehr.
Mach deinen Win Explorerer auf und such mal nach osk.exe. Verzeichnis anpassen und es sollte wieder gehen.

hmm,

verzeichnis stimmt. Sieh Screenshot.

hardlogUnbenannt.JPG

Eine Batch-Datei erstellen und diese aufrufen (wobei die Session-ID auch stimmen muss, 0 geht bei mir nicht)

Gruß
Bruno

Problem ist, dass die Session-ID(s) des/der angemeldeten Users bei „WinVer > XP“ nie „0“ oder „1“ sind.
Kann man in der Shell einfach mit

query session

prüfen.

Mit „-1“ als Session-ID sollte IPS die Session aber ermitteln können.

mit „-1“ gibt er die selbe Fehlermeldung aus.

nach

query session

wird 2 ausgegeben. Auch damit kein Erfolg…

Gruß
hardlog

Das sieht nach einem Problem mit der Rechteverwaltung von Windows 8 und IPS aus. Wir schauen mal was wir da machen können.

EDIT: Ups! Da war einer schneller! :rolleyes:

„-1“ kann ich bestätigen - geht nicht! Auf die Doku kann man sich auch nicht verlassen:

Wird der Parameter kleiner 0 gewählt, so ermittelt IP-Symcon die erste verfügbare Session automatisch und startet dort das gewünschte Programm.

Ist, wie erwähnt, dämlich, da sich die Session-ID ändern kann/ändert.

Irgend etwas ist aber außerdem noch kaputt - „write.exe“ lässt sich z.B. problemlos interaktiv starten. Ich vermute, dass die UAC da in die Suppe spuckt. Man könnte es über eine Batch mit „runas“ und „/savecred“ noch versuchen.

Cheers
/Jens

Ne Batch-Datei geht, richtige Session-ID und gut is, wie schon geschrieben.

Windows Vista/7/8 IPS_ExecuteEx funktioniert nicht

Hallo gucky,

habt Ihr schon einen Fehler gefunden?

Ich möchte gerne über das IPS Webfront eine Datei starten (bin nicht am IPS Rechner angemeldet)
aber es funktioniert weder „IPS_ExecuteEx“ noch „IPS_Execute“ bei mir.

Egal welche Zeile ich ausführe es funktioniert bei mir nicht.

<?
IPS_ExecuteEx("C:\\IP-Symcon\\Putty\\pishutdown.bat", "", false, false, 2);
//IPS_Execute("C:\\IP-Symcon\Putty\pishutdown.bat", "",false, false);
?>

Wenn ich bei IPS_ExecuteEx die -1, 0 oder 1 eingebe bekomme ich folgende Fehlermeldung:

„Warning: A call to an OS function failed in [I Touch Shutdown] on line 2“

nur bei der 2 bekomme ich keine Fehlermedlung, sondern es wird kurz „Ausführung“ angezeigt, aber die Kommandozeile wird nicht geöffnet (genauso bei IPS_Execute)

Ich habe beim Aufruf der Batchdatei schon alles mit / oder \ getestet, aber es bringt keine Änderung.

Mit der Batch starte ichzum testen nur die Komandozeile, wenn ich die direkt anklicke funktioniert das:
cmd.JPG

Ich weiss im Moment nicht mehr weiter, habe schon alle Forumbeiträge getestet.
Vielleicht kann mir ja einer auf die Sprünge helfen.

Tschau Hein09

Hi!

Ich führe meine Batch-Dateien erfolgreich wie folgt aus:

<?
IPS_Execute("C:/Tools/BATCH/Datei.bat", "", false, false);
?>

Grüße,
Chris

Hallo Bayaro,

eben getestet mit Deinen Code (also die \ gegen / getauscht) bekomme aber auch nur kurz eine Anzeige von „Ausführung“, aber es wird keine Komanndozeile geöffnet.

Tschau Hein09

So geht bei mir, unter Windows7, der Taschenrechner auf:

<?
IPS_ExecuteEx("C:/Windows/system32/calc.exe", "", false, false, 2);
?>

Evtl. mit der letzten Zahl ein wenig spielen, falls eine Meldung mit „…token…“ kommt, da war in einem anderen Thread von einem Bug die Rede, bin mir aber nicht mehr sicher was da genau war.

Grüße,
Chris

Grad nochma einen Test gebaut…

Dieses Script anlegen:

<?
IPS_Execute("C:/Tools/BATCH/Datei.bat", "", false, false);
?>

Und die „Datei.bat“ mit folgendem Inhalt:

mkdir c:	est1111\

…wenn ich dann das Script ausführe, wird unter C: der Ordner „test1111“ angelegt.

Je nachdem, was du dann mit der Batch vor hast, kann es sein, dass du in ein Rechte-Problem von Windows/UAC läufst. Also musst du gegebenenfalls mit „runas“ arbeiten.

Grüße,
Chris

hi

schön das ihr meinen Thread wiederbelebt habt.

IPS_ExecuteEx("C:/Windows/system32/calc.exe", "", false, false, 1);

Geht unter Win8.1 / 64!
Aber die Onscreentastertur eben nicht:

IPS_ExecuteEx("C:/Windows/system32/osk.exe", "", false, false, 1);

Gruß
hardlog

Auch nicht mit „runas“? Oder Berechtigungen von „osk.exe“ anpassen!?

-Chris-

Moin

also bei Win8.1x64 bekomme ich den Taschenrechner nur mit der 2 gestartet, mit der 1 oder der 0 startet der Taschenrechner nicht, es kommt aber auch keine Fehlermeldung.

IPS_ExecuteEx("C:/Windows/system32/calc.exe", "", false, false, 2);

Dann habe ich auch den Test mit der Datei.bat durch geführt, aber es wird kein Verzeichnis erstellt.
Es öffnet sich zwar die Kommandozeile aber es wird kein Verzeichnis erstellt.

Und wenn ich den Code

IPS_ExecuteEx("C:/Windows/system32/osk.exe", "", false, false, 1);

eingebe bekomme ich folgende Fehlermeldung:

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

egal ob ich da die 0, 1 oder die 2 eingebe.

Tschau Hein09

Das liegt vermutlich daran, dass IPS_ExecuteEx den Ausführungspfad nicht angibt. Die osk.exe findet dann ihre Dateien nicht.

Folgendes funktioniert bei mir:

Batch Datei erstellen. z.b. unter c: est est.cmd mit folgendem Inhalt

start /d "c:\windows\system32" osk.exe

Dann mit IPS_Execute aufrufen:

IPS_ExecuteEx("C:/test/test.cmd", "", false, false, 2);

Hallo awpross

Damit funktioniert es, aber ich muss auf dem Rechner angemeldet sein damit es funktioniert

IPS_ExecuteEx("C:/test/test.cmd", "", false, false, 2);

sobald ich nicht angemeldet bin funktioniert weder die 0,1 noch die 2

und damit funktioniert es auch nicht

IPS_Execute("C:/test/test.cmd", "", false, false);

Hein09

Vielleicht hab ich ja was verpasst, aber warum sollte man auch die Bildschirmtastatur öffnen wollen, wenn niemand am Rechner angemeldet ist?