Форум: "WinAPI";
Текущий архив: 2010.03.14;
Скачать: [xml.tar.bz2];
ВнизПара вопросов по учетным записям и процессам Найти похожие ветки
← →
Blasphemie © (2008-12-21 18:47) [0]Доброе время суток!
Есть несколько вопросов по учетным записям и процессам в ХР/2003:
При нескольких локально залогиненных в системе юзерах (Fast User switching) - как узнать ID активного юзера? Т.е., того, чей десктоп сейчас активен.
Как узнать "хозяина процесса", т.е. от имени какого юзера он запущен?
И еще вопрос: как отловить событие "fast user switchung" не в момент Lock Windows, а в момент, когда юзер становится активным, т.е. переключается на свой десктоп?
← →
Psycho © (2008-12-25 23:34) [1]неужели никто не знает?.. мне это тоже интересно
← →
Ляпа (2008-12-30 15:43) [2]http://forum.sources.ru/index.php?showtopic=243190&hl=
?
← →
kami © (2008-12-30 17:40) [3]> [2] Ляпа (30.12.08 15:43)
Не совсем то.
afair, GetActiveConsoleSessionID возвратит ID первого локально залогинившегося пользователя. Что при FUS будет не совсем правильно.function GetProcessUserInformation(ProcessId: DWORD;
var UserName, Domain: string; var SIDName: SID_NAME_USE): Boolean;
//(C) вроде И.Ш. (не помню точно, но не мое)
var
TokenSid: PSID;
begin
Result := false;
if not GetProcessTokenSid(ProcessId, TokenSid) then
Exit;
try
Result := GetSidInfo(nil, TokenSid, UserName, Domain, SIDName);
finally
ReallocMem(TokenSid, 0);
end;
end;
Чуть посмотрев по MSDN:
для обычного приложения - использовать WTSRegisterSessionNotification.
для сервиса - HandlerEx.
И вроде будет счастье.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2010.03.14;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.006 c