Привет.
Стоит задача получить список всех загогиненых пользователей в ХП на данный момент, вернее даже надо полностью реализовать последнюю вкладку в Task Managere (под XP). и вот пробелма пока не могу найти решение

, подскажите плиз..
З.Ы, а если кто еще подскажет как получить инфо по девайсам которые висят на Primary master — secomdary slave (модел, номер, количество цилиндров\головок ...).. буду вообще щаслив
З.Ы.Ы WMI — не желательно
14.10.03 11:47: Перенесено из 'C/C++'
Здравствуйте, Begemotina, Вы писали:
B>Стоит задача получить список всех загогиненых пользователей в ХП на данный момент, вернее даже надо полностью реализовать последнюю вкладку в Task Managere (под XP). и вот пробелма пока не могу найти решение
, подскажите плиз..
WTSEnumerateSessions,
WTSQuerySessionInformation.
Здравствуйте, Alex Fedotov, Вы писали:
WTSEnumerateSessions,
WTSQuerySessionInformation.
WTSEnumerateSessions вчера пробывал, возникла проблема. Она ничего мне не возвращает, а
GetLastError() выдает ошибку 1702 (The binding handle is invalid).
Вызываю функцию так — WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE,0,1,buf,&count);
...
Здравствуйте, Аноним, Вы писали:
А>WTSEnumerateSessions вчера пробывал, возникла проблема. Она ничего мне не возвращает, а
А>GetLastError() выдает ошибку 1702 (The binding handle is invalid).
А>Вызываю функцию так — WTSEnumerateSessions(WTS_CURRENT_SERVER_HANDLE,0,1,buf,&count);
А>...
А что такое buf?
Здравствуйте, 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;
}