Re[4]: Список залогиненых пользователей в ХП
От: Alex Fedotov США  
Дата: 14.10.03 08:02
Оценка:
Здравствуйте, Alex Fedotov, Вы писали:

А>>WTSEnumerateSessions вчера пробывал, возникла проблема. Она ничего мне не возвращает, а

А>>GetLastError() выдает ошибку 1702 (The binding handle is invalid).
А>>Вызываю функцию так — WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE,0,1,buf,&count);
А>>...

AF>А что такое buf?


В общем, вот так — работает:

#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <crtdbg.h>

#include <wtsapi32.h>

#pragma comment(lib, "wtsapi32.lib")

int main ( int argc, char ** argv )
{
    PWTS_SESSION_INFO pInfo;
    ULONG nCount;

    if (!WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE, 0, 1, 
                              &pInfo, &nCount))
    {
        _tprintf(_T("WTSEnumerateSessions failed (0x%08X)\n"), 
                 GetLastError());
        return -1;
    }

    for (ULONG i = 0; i < nCount; i++)
    {
        PTSTR pszUserName;
        ULONG cchUserName;

        if (!WTSQuerySessionInformation(WTS_CURRENT_SERVER_HANDLE,
                    pInfo[i].SessionId, WTSUserName, &pszUserName, 
                    &cchUserName))
        {
            _tprintf(_T("WTSQuerySessionInformation failed (0x%08X)\n"),
                     GetLastError());
            continue;
        }

        _tprintf(_T("%d: %s\n"), pInfo[i].SessionId, pszUserName);
        WTSFreeMemory(pszUserName);
    }

    WTSFreeMemory(pInfo);
    return 0;
}
-- Alex Fedotov
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.