NTUser / Win2k User mal anders !?!



  • Folgendes Problem: Ich hab mir einen Dienst programmiert, starten / beenden etc klappt wunderbar. Nun das Problem: Der Dienst soll, sobald sich jemand anmeldet einen Thread starten, in dem dann unter anderem der Benutzername des soeben angemeldeten Users weiterverwendet werden soll.
    Konkret steh ich vor diesen beiden Problemen:
    [list]

    • Wie merkt mein Dienst, wenn sich jemand an oder abmeldet?
    • Wie bekomme ich den Benutzernamen des eben angemeldeten Benutzers, ohne GetUserName, oder über den Umweg über die Registry HKEY_CURRENT_USER\Software\Microsoft\CurrentVersion\Explorer\"Logon User Name"

    Zu letzterem: Die feine Methode mit GetUserName und konsorten funktioniert nicht wirklich: Ich bekomme dann den User, unter dem der Dienst läuft (System).

    Können auch MFC oder BCB Funktionen herhalten! Danke 🙂



  • hmm, ist jetzt nur so eine idee ...

    - service muss wahrscheinlich schon laufen, bevor der login kommt
    - im service WM_USERCHANGED abfangen

    WM_USERCHANGED ist ein braodcast an alle windows, dafür muss dein service natürlich eines haben - aber ein pseudo-win einzubauen ist ja das kleinste problem.

    rocknix &&&



  • danke, werds probieren 🙂
    is bei diesem broadcast der benutzername dabei, oder gibts irgend ein system-"fenster", dass den benutzernahem irgenwie trägt?
    hab mir schon überlegt, einen smb-zugriff zu simulieren, um da irgendwie an den nutzernamen zu kommen



  • is bei diesem broadcast der benutzername dabei

    nein, leider nicht, die werte WPARAM und LPARAM sind "not used" ...

    WM_USERCHANGED
    The WM_USERCHANGED message is sent to all windows after the user has logged on or off. When the user logs on or off, the system updates the user-specific settings. The system sends this message immediately after updating the settings.

    WM_USERCHANGED
    wParam = 0; // not used, must be zero
    lParam = 0; // not used, must be zero

    rocknix ///


Anmelden zum Antworten