Форум: "WinAPI";
Текущий архив: 2013.09.15;
Скачать: [xml.tar.bz2];
ВнизЗапуск процесса под юзером... Найти похожие ветки
← →
istok (2010-02-26 12:30) [0]использую следующий код чтобы запустить процесс под учеткой текущего юзера (управляющий процесс работает под 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 процесс запускается без админских привелегий. вопрос - что подправить, чтобы процесс запускался с этими привилегиями, которые есть у управляющего процесса.
спасибо
← →
Eraser © (2010-02-26 21:44) [1]короче нужно запустить программу от имени системы, но в текущей терм. сессии?
← →
Алексей4105 (2010-02-28 16:57) [2]Можно добавить ключ реестра uac на разрашение запуска под админом.
Найти ключ реестра можно запустив regedit поиск. До этого указать на запуск файла правой кнопкой запускать под админом и поиск в реестре наладить по названию файла.
Страницы: 1 вся ветка
Форум: "WinAPI";
Текущий архив: 2013.09.15;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.015 c