Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2002.11.25;
Скачать: CL | DM;

Вниз

Запуск приложения с правами пользователя, который вошёл в систему   Найти похожие ветки 

 
Terrible ©   (2002-09-24 16:09) [0]

Есть сервис (который исполняется с правами LocalSystem). И вот ему по определённому событию надо запустить приложение (на данный момент пользуюсь WinExec). Но приложение тоже запускается с правами LocalSystem. А как бы сделать, что бы оно запускалось с правами пользователя, который сделал LogOn в систему.
Причём что самое интересное, как это сделать на Delphi. Буду очень благодарен за примерчик.


 
Song ©   (2002-09-24 16:24) [1]

CreateProcessAsUser()


 
ZZ ©   (2002-09-24 16:24) [2]

Получай PID юзерского процесса и

function GetUserContext(dwPid : Cardinal):Boolean;
var
hProc : THandle;
hToken : THandle;
User : array [0..100] of Char;
cbUser : Cardinal;
begin
Result:=false;

hProc:=OpenProcess(PROCESS_ALL_ACCESS,false,dwPid);
if hProc = 0 then Exit;

if not OpenProcessToken(hProc,TOKEN_DUPLICATE or TOKEN_QUERY ,hToken)
then Exit;

if not ImpersonateLoggedOnUser(hToken)
then Exit;

// С этого момента код будет выполняться в
// Контексте пользователя, под которым запущен
// процесс c PID = dwPID
cbUser:=100;
GetUserName(User,cbUser);
ShowMessage(User);

RevertToSelf;

// Теперь снова работаем под системой
cbUser:=100;
GetUserName(User,cbUser);
ShowMessage(User);

Result:=true;
end;



Страницы: 1 вся ветка

Текущий архив: 2002.11.25;
Скачать: CL | DM;

Наверх




Память: 0.47 MB
Время: 0.019 c
1-82811
Baboshkin
2002-11-13 16:27
2002.11.25
Значение свойства Top, Left


1-82793
dimonf
2002-11-13 15:30
2002.11.25
Как зашифровать от лишних глаз INI файл ???


3-82664
Leonon
2002-11-06 12:04
2002.11.25
Не отображаются изменения в гриде!?


7-83018
lds78
2002-09-25 16:13
2002.11.25
Работа с датой.


3-82648
h1ma
2002-11-06 06:25
2002.11.25
Как из бд вывести картинку в Image ?