![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Залогинился юзер или нет. [D7, WinXP]
kolos_rus © (2005-11-24 11:37:00)Как в своем сервисе определить, залогинился юзер или нет?
Ботвин Дмитрий (2005-11-29 16:01:00) [21]Вот так пробуй:
LMSTR = LPWSTR;
NET_API_STATUS = DWORD;
function NetWkstaUserEnum(servername: LMSTR; level: DWORD;
var bufptr: Pointer; prefmaxlen: DWORD; var entriesread: DWORD;
var totalentries: DWORD; var resumehandle: DWORD): NET_API_STATUS;
stdcall; external 'netapi32.dll' name 'NetWkstaUserEnum';
function NetApiBufferFree(buffer: Pointer): Cardinal; stdcall; external 'netapi32.dll';
function _GetUserName: String;
type THostInfo = record wkui0_username: PWideChar; end;
var
Info: Pointer;
ElTotal,ElCount,Resume: DWord;
HostInfo: THostInfo;
begin
Resume:=DWord(0);
Info:=nil;
NetWkstaUserEnum(nil,0,Info,64,ElCount,ElTotal,Resume);
if Info<>nil then
try
HostInfo:=THostInfo(info^);
Result:=Trim(HostInfo.wkui0_username);
except
Result:='Не залогинелся...';
end
else Result:='Не залогинелся...';
NetApiBufferFree(Info);
end;
kolos_rus (2005-11-29 13:29:00) [22]
> Это что, шутка? Какой тут может быть пример?! Просто вызвать
> функцию без параметров и проверить результат, все!
Вообщето меня интересовала функция NetWkstaUserEnum.
Что же касательно WTSGetActiveConsoleSessionId то что я там могу получить?
Она возвращает числа, все время разные, что они означают.
Я думал, что пока юэер не залогинился будет 0, ничего подобного.
Может пояснишь?
Прежде, чем что-то советовать, да еще в такой форме попробуй сам.
Кстати вышивать не пробовал?
Набережных С. (2005-11-28 13:27:00) [23]
> kolos_rus © (28.11.05 11:28) [6]
>
> > Набережных С. © (24.11.05 13:26) [5]
> > WTSGetActiveConsoleSessionId
>
> По описанию в MSDN очень похоже.
> Сколько не пытался заставить работать не получилось.
> Может у кого готовый пример есть?
Это что, шутка? Какой тут может быть пример?! Просто вызвать функцию без параметров и проверить результат, все!
Слушай, может ну его нафик, это программирование? Вон, вышивание крестиком - очень хорошее занятие...
kolos_rus (2005-11-28 11:33:00) [24]Извиниясь, не тот ответ подхватил.
> Ботвин Дмитрий (24.11.05 12:56) [4]
> Смотри NetWkstaUserEnum с первым параметром nil. Вернет
> залогиненного юзера на твоем компе в переданную структуру
> WKSTA_USER_INFO_0 или
> пустое значение, если юзер не вошел в систему. Вроде так.
> ..
> <Цитата>
По этой функции пример надо.
kolos_rus (2005-11-28 11:28:00) [25]
> Набережных С. © (24.11.05 13:26) [5]
> WTSGetActiveConsoleSessionId
По описанию в MSDN очень похоже.
Сколько не пытался заставить работать не получилось.
Может у кого готовый пример есть?
Набережных С. (2005-11-24 13:26:00) [26]WTSGetActiveConsoleSessionId
Ботвин Дмитрий (2005-11-24 12:56:00) [27]Смотри NetWkstaUserEnum с первым параметром nil. Вернет залогиненного юзера на твоем компе в переданную структуру WKSTA_USER_INFO_0 или
пустое значение, если юзер не вошел в систему. Вроде так...
kolos_rus (2005-11-24 12:51:00) [28]Не помогло. Возвращает имя пользователя под которым запущен процесс, а системный процесс запущен от имени SYSTEM, вот его и возвращает.
AbrosimovA (2005-11-24 12:24:00) [29]Попробуй GetUserName. В этом случае однозначно можно сказать вошёл или не вошёл, а также - кто вошёл.
kolos_rus (2005-11-24 11:54:00) [30]Может не совсем верно выразился. Вопрос такой: осуществлен ли вход в систему.