Konsole über Icon wieder sichtbar machen?



  • Moin, Moin
    habe ein Konsolenprogramm, dass nach dem Start versteckt wird, und nur ein Icon in der Tray-bar (rechts unten neben Taskbar) sichtbar ist. ( Programm ist ein Server). Leider kann ich keine Message empfangen, wenn man mit der Maus auf dieses Icon clickt. Geht das überhaupt ? 'Wie kann das funzen oder gibts einen Trick oder Workaround dafür?

    Würde gerne die Konsole wieder sichtbar machen, wenn man auf das Icon clickt.
    Über Hilfe würde ich mich echt freuen.
    Thx
    arni



  • Ich glaube fast, da benötigst du ein Windows-Fenster. Das empfängt Nachrichten dieser Art. Du kannst ja ein unsichtbares Fenster in einer Win32-Anwendung erstellen, dass bloß dazu dient die Nachrichten zu empfangen und je nach Nachricht die Konsole anzuzeigen und wieder zu verstecken. Eine Konsole bekommst du in eine Win32-Anwendung mit AllocConsole()/FreeConsole().

    MfG SideWinder



  • @SideWinder
    Wie wird das eingesetzt bzw. welche Parameter werden den Funktionen übergeben?

    MfG CSS



  • Wenn du in einem Windows-Fenster-Programm eine Konsole haben möchtest rufst du einfach AllocConsole() ohne Parameter auf. Schon hast du eine Konsole :). FreeConsole() hat ebenfalls keine Parameter.

    Achtung: Jeder Windows-Prozess kann nur *eine* Konsole haben. Mehr Details findest du in der MSDN.

    MfG SideWinder



  • Habe das jetzt im Prinzip auch so gemacht, SideWinder. Ich benutze jetzt in einem MFC-Projekt eine Dialogklasse, in die ist das alles eingebettet. Das fenster ist unsichtbar, erzeugt ein Icon in der Traybar und per Mausklick kann man ein Menue öffnen, mit dem man den Server beenden kann. das funzt gut, nur mit einer reinen Konsolenanwendung war das wohl nicht mehr zu machen.
    Ein Server braucht ja auch nicht wirklich eine Konsole, oder? Alle wichtigen Meldungen stehen im Logfile und beim Client auf dem Bildschirm. Die methode hat allerdings den Vorteil, dass der gesamte Kernprozess bei entsprechender Programmierung nach Standard wesentlich leichter portierbar ist. Die beiden benötigten MFC-Klassen sind ja nur als 'Wrapper' außen rumgelegt. Die starten dann den Server in einem eigenen Thread und so können beide ihre Arbeit tun und stören sich nicht.
    Ich wünsche euch nen guten Rutsch und ein erfolgreiches Jahr 2005.
    Tschö
    arni


Anmelden zum Antworten