Вниз
Скачать: CL | DM;

Проблема с TService   Найти похожие ветки 

← →
Nemec ©   (2007-05-04 22:11) [0]

Здравствуйте мастера. Такая проблема. Сервис по событию выключает компьютер. До сиз пор проблем не было. Теперь в силу обстоятельств, сервис запускается из под учетной записи (на компе она является адмиром). Комп перестал выключатся пока не войдешь в систему. Может кто подскажет как с этим справиться. Заранее спасибо.


← →
Nemec ©   (2007-05-04 22:13) [1]

Использую ExitWindowsEx, привилегии даются.


← →
Nemec ©   (2007-05-05 11:34) [2]

Использую следующий код:
function TService1.WinExit(iFlags: integer): boolean;
//   возможные флаги:
//   EWX_POWEROFF + EWX_FORCE
//   EWX_LOGOFF
//   EWX_REBOOT
//   EWX_SHUTDOWN
begin
 Result := True;
 If SetPrivilege("SeShutdownPrivilege", true)
 Then
 begin
   WriteLn (F, "Привилегии получены");
   Try
     If not ExitWindowsEx(iFlags, 0)
     Then
     begin
       WriteLn(F, IntToStr(GetLastError()));
       Result := False;
     end;
   except
     WriteLn(F, IntToStr(GetLastError()));
   end;
   SetPrivilege("SeShutdownPrivilege", False)
 end
 else
 begin
   Result := False;
 end;
end;

Может кто подскажет в чем дело, комп не выключается пока не войдешь в систему.
Если сервис запускается с системной учетной записью все Ок.


← →
Leonid Troyanovsky ©   (2007-05-05 12:15) [3]


> Nemec ©   (05.05.07 11:34) [2]

http://groups.google.com/group/fido7.ru.delphi/msg/4f6cb6c1e2e77ec7

--
Regards, LVT.


← →
Nemec ©   (2007-05-05 14:12) [4]

Спасибо Леонид за ссылку. Но дело в том, что привилегии получаются, функция ExitWindowsEx похоже выполняется (в логе пусто) и вся эта фишка отлично работала и работает под системной учетной записью. Проблема как раз в том, что если я запускаю сервис от имени пользователя (пусть даже этот пользователь админ), все это почему-то не хочет работать, пока не войдешь в систему.
А может я дурак, чего не понимаю!!!


← →
Leonid Troyanovsky ©   (2007-05-05 14:37) [5]


> Nemec ©   (05.05.07 14:12) [4]

> А может я дурак, чего не понимаю!!!

Видимо, ExitWindowsEx должно быть из интерактивной станции.
Попробуй вместо него InitiateSystemShutdown
(после установки прав).

--
Regards, LVT.



Страницы: 1 вся ветка

Скачать: CL | DM;



Память: 0.46 MB
Время: 0.013 c
2-1192545392
Чародей
2007-10-16 18:36
2007.11.11
Combo и Access Violation


15-1191414639
Elen
2007-10-03 16:30
2007.11.11
Несовместимость нового железа и старого софта.


15-1192019663
ANTPro
2007-10-10 16:34
2007.11.11
У кого есть книга Ф. Юань — Программирование графики для Windows


11-1175523578
Fregl
2007-04-02 18:19
2007.11.11
Поддержка MySQL


2-1192788766
OlegMa1
2007-10-19 14:12
2007.11.11
Простой TObject




   Наверх