Comroader Geschrieben 2. April 2002 Geschrieben 2. April 2002 Hallo, Weis zufällig jemand von euch wie ich eine MFC-Anwendung so starten kann, das das Programm nicht in der Taskbar und am Screen sichbar ist. Bei einer Socket-Anwendung soll der Server praktisch im Hintergrund sein und man soll ihn nicht bemerken. Tausend Dank für eure Bemühungen im voraus !!! THX Zitieren
Klotzkopp Geschrieben 2. April 2002 Geschrieben 2. April 2002 Wie willst Du das Programm beenden? Zitieren
Olli_Master Geschrieben 3. April 2002 Geschrieben 3. April 2002 Bei einer Socket-Anwendung soll der Server praktisch im Hintergrund sein und man soll ihn nicht bemerken. Solche Anwendungen laufen i.A. als NT/2000-Dienst und haben dabei per Default nicht die Berechtigung "mit dem Desktop zu interagieren". Sind also quasi unsichtbar. (Unsichtbar heisst in dem Fall aber auch wirklich unsichtbar) Es gibt ein Shareware-Tool mit dem man eine beliebige ausführbare Datei als Dienst (f. WinNT/2000) registrieren lassen kann. Allerdings sollte man m.E. für sowas kein Programm mit MFC-Gui schreiben. Eine Alternative wäre das Hauptfenster auszublenden und ein Tray-Icon hinzuzufügen --> MSDN. Zitieren
Crush Geschrieben 3. April 2002 Geschrieben 3. April 2002 @Comroader Psssst - es sind schon einige Threads geschlossen worden, wo andere was ähnliches gefragt haben ... weil da eine Nutzung bösartiger Natur sein könnte. Ansonsten schau doch mal alternativ unter das Thema TSR-Programmierung nach. Da könnte man auch was mit anfangen. Zur Information kannst Du ja Hier und hier reinschauen. Starte das Programm einfach durch einen Registry-Eintrag von Rundll oder Runservices, der ist dann nämlich immer hidden. Das Programm muß halt dann direkt die Message-Queues der entsprechenden Tasks abhorchen und darauf entsprechend reagieren. Das Entfernen des TSRs könnte man auch durch eine entsprechende selbstdefinierte Message realisieren - vielleicht durch einen Keyboard-hook, der nach einem speziellen Steuerwort sucht?!?! Oder das Entfernen des Steuerprogramms sorgt dafür, daß sich das TSR eigenständig unloaded. Man könnte bestimmt auch versuchen das Programm direkt in die Process-Queue reinzusetzen - sowas wird das Tool vom Olli_Master sein. Zitieren
Olli_Master Geschrieben 3. April 2002 Geschrieben 3. April 2002 Das ist doch ein wenig übertrieben, oder? Wenn ich zum Beispiel ein Programm schreibe, was im Hintergrund einen Webserver auf funktionsfähigkeit prüft, dann wäre es doch gut, wenn da nicht unbedingt eine GUI irgendwo den admin nervt. Das o.g. Tool dient ledigleich dazu eine Exe-Datei als Dienst einzutragen und dann bei Systemstart loszulegen. Zur Installation brauch man natürlich Admin-Rechte. Und das Programm erscheint dann ganz normal als Prozess (der ggf. gekillt werden kann.) Ich glaube wir kommen vom Thema ab. Die Frage ist, warum möchte man die Gui ausblenden bzw. verstecken! Zitieren
Klotzkopp Geschrieben 3. April 2002 Geschrieben 3. April 2002 Bei den geschlossenen Threads ging es darum, dass ein Programm so weit "unsichtbar" gemacht werden sollte, dass es nicht mehr im Taskmanager auftaucht. Und da ist ein kritisches Hinterfragen des Grundes für solche Heimlichtuerei durchaus angebracht. Um aber zum Thema zurückzukommen: Bei einer dialogbasierten MFC-App kannst Du die GUI unsichtbar halten, indem Du in der InitInstance den DoModal-Aufruf der Hauptdialogklasse gar nicht erst machst, sondern auf ein anderes Ereignis wartest, dass das Ende des Programms signalisiert. Zitieren
Comroader Geschrieben 3. April 2002 Autor Geschrieben 3. April 2002 Mit ShowWindow(SW_HIDE) kann ich zwar ein Fenster verstecken aber das geht erst wenn das Fenster schon erschienen ist und ich dann einen Button drücke. Wenn ich dasselbe im InitDialog mache erscheint das Fenster trotzdem. Zitieren
Crush Geschrieben 3. April 2002 Geschrieben 3. April 2002 Bei Klotzkopp´s Methode ist das Programm aber immer noch im Task-Manager sichtbar und es gibt halt keinen Popup - aber für ein nebenbei laufendes Programm spielt das doch wirklich keine große Rolle, oder? Zitieren
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.