Форум программистов, компьютерный форум CyberForum.ru

Как из службы (сервиса) в Windows 2000 узнать имя пользователя? - C++

Восстановить пароль Регистрация
 
Kuza
0 / 0 / 0
Регистрация: 23.10.2006
Сообщений: 26
20.10.2010, 18:50     Как из службы (сервиса) в Windows 2000 узнать имя пользователя? #1
Есть проблема:
Как из службы (сервиса) в Windows 2000 узнать имя пользователя?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
20.10.2010, 18:50     Как из службы (сервиса) в Windows 2000 узнать имя пользователя?
Посмотрите здесь:

C++ Как узнать имя экземпляра класса?
C++ Как узнать имя файла?
как узнать нажатие клавиши было программным или от пользователя C++
C++ Как узнать имя компьютера
C++ Как узнать Handle или PID процесса, зная его имя и класс?
C++ Создание Службы Windows
C++ Как узнать имя текущего пользователя?
Как узнать имя exe зная его id (WinApi,c++) C++

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
bazile
55 / 31 / 17
Регистрация: 15.03.2007
Сообщений: 6,912
21.10.2010, 12:40     Как из службы (сервиса) в Windows 2000 узнать имя пользователя? #2
Попробуйте так:
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
// Дескриптор рабочего стола получающим ввод от пользователя
HDESK hUserDesktop = OpenInputDesktop(0, FALSE, MAXIMUM_ALLOWED);
 
//  Определяем необходимый объем памяти для SID пользователя 
DWORD dwSidLength = 0;
GetUserObjectInformation(hUserDesktop, UOI_USER_SID, NULL, 0, &dwSidLength);
 
//  Выделяем память под SID
PSID lpUserSid = (PSID)HeapAlloc(GetProcessHeap(), HEAP_ZERO_MEMORY, dwSidLength);
GetUserObjectInformation(hUserDesktop, UOI_USER_SID, lpUserSid, dwSidLength, &dwSidLength);
 
// Определяем имя пользователя по SID
LookupAccountSid( ... );
 
HeapFree(lpUserSid);
CloseDesktop(hUserDesktop);
Код я не проверял, это всего лишь идея. Кроме того в него нужно добавить проверку ошибок.

Еще имеет смысл изучить пример к функциям OpenDesktop/OpenInputDesktop в MSDN. К сожалению в online версии почему-то примера нет, так что ссылку дать не могу.
Yandex
Объявления
21.10.2010, 12:40     Как из службы (сервиса) в Windows 2000 узнать имя пользователя?
Ответ Создать тему
Опции темы

Текущее время: 04:04. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru