Форум по Delphi программированию

Delphi Sources



Вернуться   Форум по Delphi программированию > Все о Delphi > [ "Начинающим" ]
Ник
Пароль
Регистрация <<         Правила форума         >> FAQ Пользователи Календарь Поиск Сообщения за сегодня Все разделы прочитаны

Ответ
 
Опции темы Поиск в этой теме Опции просмотра
  #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;
Админ: пользуемся тегами! При рецедиве последуют санкции!

Последний раз редактировалось Admin, 11.09.2015 в 19:46.
Ответить с цитированием
  #2  
Старый 11.09.2015, 22:53
lmikle lmikle вне форума
Модератор
 
Регистрация: 17.04.2008
Сообщения: 8,093
Версия Delphi: 7, XE3, 10.2
Репутация: 49089
По умолчанию

У службы в списке свойств есть свойство для указания пользователя, под которым надо ее ставить. Надо заполнять его. А уж стартует она под тем пользователем, под которым зарегистрированна. Ну или ставь ее сам на API без использования дельфовых оберток, тогда можно указать под кем запускать. См. тут: https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
Ответить с цитированием
Этот пользователь сказал Спасибо lmikle за это полезное сообщение:
Mishko (14.09.2015)
Ответ


Delphi Sources

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск
Опции просмотра

Ваши права в разделе
Вы не можете создавать темы
Вы не можете отвечать на сообщения
Вы не можете прикреплять файлы
Вы не можете редактировать сообщения

BB-коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.
Быстрый переход


Часовой пояс GMT +3, время: 22:22.


 

Сайт

Форум

FAQ

Соглашения

Прочее

 

Copyright © Форум "Delphi Sources" by BrokenByte Software, 2004-2025