Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "WinAPI";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];

Вниз

Проблема с 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 вся ветка

Форум: "WinAPI";
Текущий архив: 2007.11.11;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.09 c
2-1192530303
Dark_blue
2007-10-16 14:25
2007.11.11
Алгоритм шифрования


2-1192535102
l_v
2007-10-16 15:45
2007.11.11
структуры большой вложенности


2-1192180654
Ega23
2007-10-12 13:17
2007.11.11
Как убить объект из его же метода?


2-1192983475
saymon
2007-10-21 20:17
2007.11.11
key violation


2-1192520464
de.
2007-10-16 11:41
2007.11.11
DBGridEh





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский