Показать сообщение отдельно
  #1  
Старый 11.09.2015, 13:49
Mishko Mishko вне форума
Прохожий
 
Регистрация: 28.08.2015
Сообщения: 28
Версия Delphi: Delphi XE5
Репутация: 10
По умолчанию Программный запуск/установка службы под пользователем

Уважаемые профи, как осуществить программный запуск/установка службы под пользователем. В коде прописано так, но пользователь оказывается "система":
Код:
function TConsultantUpdate.ExecAndWait(const FileName,Params:String;const WinState: Word):integer; export;
var
  StartInfo: TStartupInfo;
  ProcInfo: TProcessInformation;
  CmdLine: String;
  res:boolean;
  ExitCode: Cardinal;
   hUserToken: DWORD;
begin
  { Помещаем имя файла между кавычками, с соблюдением всех пробелов в именах Win9x }
  CmdLine := '"' + Filename + '" ' + Params;
  FillChar(StartInfo, SizeOf(StartInfo), #0);
  with StartInfo do
    begin
      cb := SizeOf(StartInfo);
      dwFlags := STARTF_USESHOWWINDOW;
      wShowWindow := WinState;
    end;

if not LogonUser(Pchar('lukianov'), Pchar('elcode.local'), Pchar('lukianov'), LOGON32_LOGON_INTERACTIVE, LOGON32_PROVIDER_DEFAULT, hUserToken)   then RaiseLastOSError;

ServiceStartName:='lukianov'; Password:='lukianov';
 end;
Админ: пользуемся тегами! При рецедиве последуют санкции!
Ответить с цитированием