Windows Vista: IPS_Execute geht nicht

Ich habe folgende Zeilen versucht:

IPS_Execute(„notepad.exe“, „“, true, false);
IPS_Execute(„notepad.exe“, „test.txt“, true, false);
IPS_Execute(„c:\Windows
otepad.exe“, „“, true, false);

aber Notepad wird nicht gestartet. Muss man da etwas spezielles berücksichtigen oder ist das ein Bug unter Windows Vista?

Gruß
Markus

Ist es die Beta?

Schau mal im Taskmanager ob du massenweise Notepads offen hast nun.

Gruß,

Toni

Ja, ist die aktuelle Beta.
Nein, kein Notepad im Taskman zu sehen.

also dies:

IPS_Execute("notepad.exe", "", true, false);

öffnet mir im Taskmanager unter Prozesse einmal notepad pro klick auf ausführen. ist aber win2K…

Gruß,

Toni

Unter Windows Vista definitiv nicht. Könnte das gleiche Problem wie mit Winamp sein.

Ist ein Support von Windows Vista geplant?

Glaub ich nicht… Kann ich aber auch nicht ausschließen… :confused:

Soweit ich weiss ja, ist es. - Auskunft aber ohne Gewähr…

Toni

Wenn ich im Taskmanager „Prozesse aller Benutzer“ anzeigen lasse, sehe ich das notepad.exe gestartet wurde (>100x). :slight_smile:

Warum wird das Fenster nicht sichtbar? Warum läuft notepad.exe als Prozess und nicht als Anwendung?

Gruß
Markus

siehe hier: klick

Toni

Das sagt mir jetzt, das die Exec-Funktionen in IPS 2 für mich zum Teil unbrauchbar sind. Speziell beim entwickeln ist die Bildschirmanzeige von via exec* gestarteten Programmen doch wichtig.

Toll wäre eine Möglichkeit, IPS 2 alternativ nicht als Dienst sondern einfach als Programm zu starten. Vereinfacht sicher die Entwicklung von IPS Projekten.

Gruß
Markus

Wie gesagt… ist in Arbeit. Es gibt so eine Funktion in den ToniTools deren Portierung auf IPS2 hab ich fast fertig… Dort tritt dieses Phänomen nicht auf…

Toni

Das Problem ist folgendes: Da IP-Symcon als Dienst läuft, läuft es unabhängig von den Terminal Sessions. Ab Vista kann ein Dienst nicht mehr „Interaktiv“ sein. Microsoft hat diese Funktion aus Sicherheitsgründen gestrichen.

Es ergeben sich nun folgende Probleme:
-Was soll passieren, wenn keine Session offen ist? (=Keiner ist eingeloggt)
=> Wenn keine Session offen ist, kann der Befehl ja ins leere gehen.

-Wenn ich ein Programm öffne… unter welcher Session soll es angezeigt werden? (Auf der Lokalen? Auf einer der Remote Sessions?)
=> Der Benutzer muss die gewollte Session identifizieren und als Parameter mit übergeben. Nicht ganz trival, aber Möglich.

Grüße, paresy

@Toni: Sicher, dass du deine Funktion aus dem Dienst heraus gestartet hast, und nicht aus dem Debugger!? :slight_smile:

Hallo,

da ich vor dem gleichen Problem stehen werde (noch nutze ich V1), nur nochmal
die Frage ob es in Zukunft auch die Möglichkeit geben wird die V2 als Programm
zu starten?

VG
Stephan

Vorschlag: ist keine Session offen wird nichts angezeigt. Logt sich der User an wird ein eventueller Hinweis angezeigt das irgendetwas war („IPS konnte Nachricht nicht anzeigen da kein Benutzer angemeldet war“).

Ist ein User angemeldet würde ich es in der User Session anzeigen.

Jepp, ich hab Userpermissions und arbeite losgelöst vom Dienst auf dem Userdesktop… Dafür ist freilich ein Umweg über eine zusätzliche ProcID notwendig, deren Referenz du mit diesen Features ausstatten musst.

Die ToniTools haben ja schon seit langem eine TT_Runfile (vergleichbar mit IPS_Execute) und durch die neue Netzwerkfähigkeit, die ja auch schon recht lange angekündigt ist :rolleyes:, schlage ich hier 2 Fliegen mit einer Klappe und spar mir den WinAPI Trick… Hintergrund ist eigentlich mal gewesen eine Datei auf einem anderen Rechner auszuführen.

Toni

Bei IPS_ExecuteEx kann im 5. Parameter die SessionID angeben, in der das Programm gestartet werden soll.
Ist nett, wenn man ein Programm auf ein paar mehr RDP Sessions starten will :wink:

Der ShowWindow Parameter wird zur Zeit nicht ausgewertet - bleibt aber aus Rückkompatibilitätsgründen erstmal drin.

paresy

Super, ich freue mich schon auf dieses Update! Bitte um kurze Info hier wenn es verfügbar ist.

Sollte das schon gehen?

Ja. http://www.ipsymcon.de/forum/47921-post30.html

Beachte:

FIX: IPS_Execute funktioniert wieder. Hinweis: Ein vollständiger Pfad muss angegeben werden!

paresy

Das geht leider noch nicht (Windows VISTA):

IPS_Execute(„C:\windows
otepad.exe“, „d: est.txt“, true, false);

keine Fehlermeldung, gar nichts. Ein Liveupdate habe ich gestern durchgeführt. Vorm Update wurde der Prozess zumindest im Hintergrund (unsichtbar) gestartet, jetzt passiert gar nichts. Mache ich da noch etwas falsch?

IPS_Execute ist ab jetzt wieder der alte Befehl.

Wer Anwendungen interaktiv starten will, sollte IPS_ExecuteEx verwenden.

Das Funktioniet dann z.B. so:


IPS_ExecuteEx("C:\\windows\
otepad.exe", "C:\\autoexec.bat", true, false, 1);

paresy