Applikation als Prozess starten



  • Hallo,

    ein würde gerne eine Anwendung als Prozess starten.
    D.h. Sie soll weder in der Taskleiste auftauchen noch über ALT+TAB erreichbar sein.

    Leider habe ich keinen Ansatz wie ich das realisiere... 😞



  • Edith sagt: Im Idealfall würde ich dabei trotzdem gerne die Elemente nutzen die ich sonst nur auf die Form "ziehe" wie z.B. den CppWebBrowser.

    Sozusagen eine formularbasierte Anwendung schreiben die als Dienst gestartet wird.



  • Du kannst einem Dienst Formulare hinzufügen und darin beliebige Komponenten verwenden. Allerdings warnt Microsoft explizit davor, das zu tun, weil dadurch Code mit Systemrechten von nichtprivilegierten Nutzern ausgeführt werden kann. Natürlich kannst du auch in einem Dienst ohne Fenster die VCL-Komponenten verwenden, indem du sie einfach zur Laufzeit erstellst.



  • erstell mal eine neue Service-Anwendung im BCB, dort hat der Service1 auch eine Art Formular wo man nichtvisuelle Komponenten der VCL reinlegen kann



  • Danke erstmal für die Antworten.

    Das generieren zur Laufzeit wollte ich erstmal ausschließen da es doch viel anfälliger für Fehler ist wenn man darin nicht sonderlich geübt ist.

    Nutze zZ den Borland Builder 2007 also CodeGear bla dings etc.pp. und dort hab ich als "Neue Service-Anwendung" kein Formular oder etwas der art.



  • Ein Service ist etwas ganz anderes; dein Programm dürfte nicht in diese Kategorie gehören. Erstelle einfach ein gewöhnliches Win32-Programm ohne Fenster (über den Konsolenexperten).

    Slashi schrieb:

    Das generieren zur Laufzeit wollte ich erstmal ausschließen da es doch viel anfälliger für Fehler ist wenn man darin nicht sonderlich geübt ist.

    Du kannst die Komponenten ja mit dem Formulardesigner erstellen und die .DFM-Datei zur Laufzeit mit ReadComponentRes oder ReadComponentResFile laden.



  • es gibt auch noch die Möglichkeit ein Programm ganz normal zu schreiben (mit GUI) und diese in den Systray zu verschieben. Dazu schau dir mal die Komponente "TrayIcon" in der Registerkarte "Beispiele" an. Ist etwas einfacher als eine Serviceapplication, hat aber einige unterschiede. So kann diese Anwednung nicht ausgeführt werden, wenn kein User angemeldet ist. Das geht nur mit Services (TServiceApplication).

    lg Stephan

    ps: ich benutze BCB6, ich weiß nicht ob es das bei dir noch gibt



  • Wozu in die TNA, wenn das Programm nicht über ein GUI mit dem Benutzer interagieren soll?

    (TTrayIcon gibt es btw auch in C++Builder 2006, aber nicht mehr unter "Beispiele".)



  • eine weitere Möglichkeit ist, ein Datenmodul in die Service-Anwendung zu integrieren, da auch dieses einen Container für nichtvisuelle Komponenten bietet



  • Linnea schrieb:

    eine weitere Möglichkeit ist, ein Datenmodul in die Service-Anwendung zu integrieren, da auch dieses einen Container für nichtvisuelle Komponenten bietet

    Genau diese wird std. mässig generiert wenn Du es über den Konsolenexperten machst.

    Nein die "nicht Service/Dienst/Prozess" Varianten fallen weg. Denn wenn ich mich auslogge möchte ich sehen wie meine Win32 Anwendung ohne Fenster weiter arbeitet. 🙂 Außerdem ist es später wichtig das der Dienst nicht als "User" ausgeführt wird. Sondern als "System"-Dienst läuft.

    Außerdem ist's die Übung 🙂


Anmelden zum Antworten