Top.Mail.Ru
Мастера DELPHI, Delphi programming community Титульная страница Поиск, карта сайта Написать письмо 
| Новости | Поиск | FAQ | Статьи | Книги | Новости VCL |
| Форумы ЧАТ | Орешник | KOL и MCK |
Форумы -» Основная («Начинающим»)/ Базы / WinAPI / Компоненты / Сети / Media / Игры / Corba и COM / KOL / FreePascal / .Net / Прочее / RSDN.ORG

« предыдущая ветвь | форум | следующая ветвь »

Запуск процесса под юзером... [D7]


istok ©   (2010-02-26 12:30:00) 

использую следующий код чтобы запустить процесс под учеткой текущего юзера (управляющий процесс работает под system):


function RunProcessAsCurrentUser(FileName: string): Boolean;
var
 ProcessId: Integer;
 hWindow, hProcess, TokenHandle: THandle;
 si: Tstartupinfo;
 p: Tprocessinformation;
begin
   Result := False;
   hWindow := FindWindow('Progman', 'Program Manager');
   GetWindowThreadProcessID(hWindow, @ProcessID);
   hProcess := OpenProcess (PROCESS_ALL_ACCESS, FALSE, ProcessID);
   if OpenProcessToken(hProcess, TOKEN_ALL_ACCESS, TokenHandle) then
   begin

     FillChar(si,SizeOf(si),0);
     with Si do begin
       cb := SizeOf( Si);
       dwFlags := startf_UseShowWindow;
       wShowWindow := SW_NORMAL;
       lpDesktop := PChar('winsta0\default');
     end;

     Result :=  CreateProcessAsUser(TokenHandle, nil,
       PChar(FileName),
       nil, nil, false, Create_default_error_mode, nil, nil, si, p);
   end;
end;


проблема в том, что в win7 при включенном uac процесс запускается без админских привелегий. вопрос - что подправить, чтобы процесс запускался с этими привилегиями, которые есть у управляющего процесса.

спасибо


Алексей4105   (2010-02-28 16:57:00) [1]

Можно добавить ключ реестра uac на разрашение запуска под админом.
Найти ключ реестра можно запустив regedit поиск. До этого указать на запуск файла правой кнопкой запускать под админом и поиск в реестре наладить по названию файла.


Eraser   (2010-02-26 21:44:00) [2]

короче нужно запустить программу от имени системы, но в текущей терм. сессии?


Наверх

Титульная страница Поиск, карта сайта Написать письмо