Для запуска процесса из сервиса - использую следующий код.
Код | var hToken: THandle; si: STARTUPINFOA; pi: PROCESS_INFORMATION; ... if WTSQueryUserToken(WtsGetActiveConsoleSessionID, hToken) then begin ZeroMemory(@si, SizeOf(si)); si.cb := SizeOf(si); si.lpDesktop := nil; CreateProcessAsUser(hToken, nil, PANSIChar(_FILENAME), nil, nil, False, 0, nil, nil, si, pi) end;
|
Все работает хорошо - но мне нужно запустить процесс от имени SYSTEM на рабочем столе текущего пользователя Вопрос как задать имя рабочего стола?
Код | if WTSQueryUserToken(WtsGetActiveConsoleSessionID, hToken) then begin ZeroMemory(@si, SizeOf(si)); si.cb := SizeOf(si); si.lpDesktop := ? // имя рабочего стола CreateProcess(nil, PANSIChar(_FILENAME), nil, nil, False, 0, nil, nil, si, pi) end;
|
|