Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.11.11;
Скачать: 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 вся ветка

Текущий архив: 2007.11.11;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.019 c
9-1162828267
Алена
2006-11-06 18:51
2007.11.11
OpenGl


1-1187850968
elserpiente
2007-08-23 10:36
2007.11.11
как прочитать version information


15-1191764613
VID
2007-10-07 17:43
2007.11.11
Трабла с кириллицей в IE


2-1192729888
Jimmy
2007-10-18 21:51
2007.11.11
Сколько памяти занимает программа


15-1191682768
новый админ
2007-10-06 18:59
2007.11.11
медленный доступ к удаленному серверу