Entwickler-Ecke

Windows API - Aus Dienst Formularanwendung starten


jf_stgt - Mi 13.08.08 16:41
Titel: Aus Dienst Formularanwendung starten
Guten Tag zusammen,

ein Dienst zu schreiben ist ja nicht zu schwer.
Ich habe auch eine Formularanwendung die zur Konfiguration des Dienstes (Datenbankeinstellungen) läuft.
Dies funktioniert problemlos.

Nun möchte ich aber, dass der Dienst bei bestimmten Ereignissen eine externe Anwendung startet die dann eine Meldung anzeigt, der Benutzer gibt etwas ein, ...
Man kann natürlich innerhalb des Dienstes ein ShellExecute aufrufen, aber dabei wird natürlich kein Fenster angezeigt, da der Dienst und der Benutzer ja unter unterschiedlichen "Windows Stationen" arbeiten.

Habt ihr Ideen was man da tun könnte?

Viele Grüße
jf_stgt


Moderiert von user profile iconNarses: Topic aus VCL (Visual Component Library) verschoben am Mi 13.08.2008 um 16:55


Narses - Mi 13.08.08 16:57

Moin!

Nix kann man da tun, jedenfalls nicht direkt aus dem Dienst (ab Vista soll das erst gar nicht mehr gehen, selbst wenn man wollte und entsprechende "Tricks" kennen würde). :nixweiss:

Mach eine Anwendung, die im Benutzerkontext gestartet wird und per IPC mit dem Dienst kommuniziert. Ist eine Benutzerreaktion notwendig, dann muss das die Benutzeranwendung abwickeln und dem Dienst mitteilen. :idea:

cu
Narses


jf_stgt - Mi 13.08.08 17:18

user profile iconNarses hat folgendes geschrieben:

Nix kann man da tun, jedenfalls nicht direkt aus dem Dienst ...

Ich habe es ehrlich gedacht schon fast befürchtet.

user profile iconNarses hat folgendes geschrieben:

ab Vista soll das erst gar nicht mehr gehen...

Ich liebe Vista.

user profile iconNarses hat folgendes geschrieben:

Mach eine Anwendung, die im Benutzerkontext gestartet wird und per IPC mit dem Dienst kommuniziert.

Bleibt mir ja nichts anderes übrig. Wobei dann die Frage ist, ob man nicht die ganze Dienstfunktionalität in die Anwendung integriert - wenn diese eh offen sein muss. Aber dies ist eine Sache die nur ich klären kann.

Gruß und danke für die schnelle Antwort
jf_stgt


mkinzler - Mi 13.08.08 17:19

Dann muss immer jemnad angemeldet sein und dieser braucht dann u.U. erhöhte Rechte.


jf_stgt - Mi 13.08.08 17:25

Hallo Markus,

user profile iconmkinzler hat folgendes geschrieben:
Dann muss immer jemnad angemeldet sein und dieser braucht dann u.U. erhöhte Rechte.

Dies ist richtig bzw. ein Indiz für den Einsatz eines Dienstes. Ich muss klären, was passiert, wenn der Benutzer nicht angemeldet ist (weil dann ja die Anwendung die die Meldung ausgibt auch nicht tut).

Gruß
jf_stgt


mkinzler - Mi 13.08.08 17:27

Deshalb würde ich es als Dienst implementieren, dann muss niemand angemeldet sein und man hat dann auch keine Rechteproblem.


jf_stgt - Mi 13.08.08 17:34

user profile iconmkinzler hat folgendes geschrieben:
Deshalb würde ich es als Dienst implementieren, dann muss niemand angemeldet sein und man hat dann auch keine Rechteproblem.

Ja und die Usermeldung würde nicht angezeigt da die Anwendung nicht läuft. Wie gesagt, ich muss klären, was passiert wenn die Usermeldung nicht kommt.