[C] TrayIcon ohne GUI



  • Guten Tag.

    Momentan stehe ich vor einem Problem mit dem aufrufen eines TrayIcons.

    Ich brauche für meine C Anwendung die keine GUI besitzt ein TrayIcon.

    Ich habe beispielhaft diesen Code zusammengeschustert:

    #include <stdlib.h>
    #include <stdio.h>
    #include <windows.h>
    
    int main() {
    HICON hIcon = LoadIcon(NULL,IDI_INFORMATION);
    NOTIFYICONDATA nid;
    MSG msg;
    
    nid.cbSize = sizeof(NOTIFYICONDATA);
    
    nid.hWnd = NULL;
    nid.uID = 1;
    
    nid.uFlags = NIF_ICON;
    nid.hIcon = hIcon;
    
    Shell_NotifyIcon(NIM_ADD, &nid);
    
    while ((GetMessage(&msg, NULL, 0, 0)) != 0) {
    
      }
    
    return 0;
    }
    

    Das Icon erscheint auch, nur leider verschwindet es beim überfahren mit der Maus.

    Ich kann den Fehler leider nicht finden.



  • Ich tippe mal darauf, dass dein Prozess schon lange nicht mehr läuft, wenn Du mit der Maus übers Icon fährst.

    Ich sehe nirgends DispatchMessage(..)?

    Simon



  • Der Prozess läuft noch.
    Dafür ist ja GetMessage da.

    Aber es kommt keine Message rein. Das Icon verschwindet einfach wieder.


Anmelden zum Antworten