Messages in einem Dienst?



  • Hallo Leute,

    muss gerade einen Dienst schreiben. Ich hab schonmal das Grundgerüst mit den Winapi Funktionen geschrieben. Nur wundert es mich jetzt das wenn ich in der Service Start Funktion nach dem setzen des SetServiceStatus Funktion keinen Code schreibe der Service mit dem Fehler "Dienst wurde unerwartet beendet" abbricht.
    Wenn ich jetzt auch nur eine MessageBox(.....) Funktion nach dem setzen des ServiceStatus aufrufe läuft der Service anscheined. Und ich kann ihn im Dienst Dialog in der Systemsteuerung anhalten und wieder fortsetzen ohne Probleme. Aber was macht er denn dann bitte? Die MessageBox kommt auf jeden fall schonmal nicht.

    Ausserdem hab ich noch das Problem das ich jetzt einen Timer brauche, und ich noch die CAsyncSocket von Mfc verwenden möchte. Aber wo reagiere ich auf die messages? Hab ja kein Fenster an das ne WndProc hängt.

    Und bitte kommt mir jetzt nicht mit schau in der MSDN nach, das hab ich bereits und frage deswegen hier.

    MfG DreamDancer



  • Für den Timer hab ich ne Lösung:

    //Prozedur:
    VOID CALLBACK TimerProcedure(
      HWND hwnd,     // handle of window for timer messages
      UINT uMsg,     // WM_TIMER message
      UINT idEvent,  // timer identifier
      DWORD dwTime   // current system time
    )
    {
      //Was machen
    }
    //...
    //Hauptprogramm:
    SetTimer(0,0,1000/*Interval in ms*/,TimerProcedure);
    

    Siehe SetTimer und TimerProc.
    Mit Diensten kenne ich mich nicht aus (hab nur Win98 🙄 ).

    Gruß!
    Unzi



  • Nur Serviceprozesse vom Typ SERVICE_INTERACTIVE_PROCESS haben die Möglichkeit, mit der Benutzeroberfläche von Windows zu interagieren!

    Goggle mal nach Dr. C. WinApi - der kennt sich damit bestens aus!


Anmelden zum Antworten