[winapi] Jak sprawdzić, czy ktoś jest zalogowany do systemu
Ostatnio zmodyfikowano 2015-08-02 12:00
qrchack Temat założony przez niniejszego użytkownika |
[winapi] Jak sprawdzić, czy ktoś jest zalogowany do systemu » 2015-08-02 00:42:05 Jak w temacie: Jak sprawdzić, czy ktokolwiek korzysta z komputera, w sensie, jest zalogowany ma pulpit ikonki i uruchomione programy?
Dotarłem do funkcji LsaEnumerateLogonSessions, niestety ma ona wadę - listuje również zamknięte już sesje (czyli jeżeli user1 się zaloguje i wyloguje, po nim user2, a po nich user3, to na liście pojawią się wszystkie 3 sesje), a ze struktury zwracanej przez LsaGetLogonSessionData nie potrafię wywnioskować, czy sesja jest "aktywna".
Czy ktoś z was mierzył się z tym problemem? |
|
DejaVu |
» 2015-08-02 10:25:35 https://msdn.microsoft.com/en-us/library/windows/desktop/aa378290%28v=vs.85%29.aspx |
|
qrchack Temat założony przez niniejszego użytkownika |
» 2015-08-02 11:15:44 Eh... Noż przecież napisałem, że ze struktury zwracanej przez LsaGetLogonSessionData nie potrafię wywnioskować czy sesja jest aktywna czy nie.
Jeśli SecurityLogonType = 2 to wiem, że sesja jest sesją z pulpitem. OK. Nadal jednak nie wiem, jak rozróżnić "martwe" sesje (czyli już wylogowane) od żywej. |
|
DejaVu |
» 2015-08-02 11:24:11 moze tu cos jest napisane: http://www.codeproject.com/Articles/18179/Using-the-Local-Security-Authority-to-Enumerate-Us |
|
Elaine |
» 2015-08-02 12:00:27 Pobierz listę procesów, dla każdego procesu otwórz jego token zabezpieczeń, z tego tokenu wyciągnij (hint: TokenStatistics) LUID sesji. Co zrobić z otrzymanymi w ten sposób LUIDami, to już chyba można się domyślić. |
|
« 1 » |