![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Проблема с TService
Nemec © (2007-05-04 22:11:00)Здравствуйте мастера. Такая проблема. Сервис по событию выключает компьютер. До сиз пор проблем не было. Теперь в силу обстоятельств, сервис запускается из под учетной записи (на компе она является адмиром). Комп перестал выключатся пока не войдешь в систему. Может кто подскажет как с этим справиться. Заранее спасибо.
Leonid Troyanovsky (2007-05-05 14:37:00) [1]
> Nemec © (05.05.07 14:12) [4]
> А может я дурак, чего не понимаю!!!
Видимо, ExitWindowsEx должно быть из интерактивной станции.
Попробуй вместо него InitiateSystemShutdown
(после установки прав).
--
Regards, LVT.
Nemec (2007-05-05 14:12:00) [2]Спасибо Леонид за ссылку. Но дело в том, что привилегии получаются, функция ExitWindowsEx похоже выполняется (в логе пусто) и вся эта фишка отлично работала и работает под системной учетной записью. Проблема как раз в том, что если я запускаю сервис от имени пользователя (пусть даже этот пользователь админ), все это почему-то не хочет работать, пока не войдешь в систему.
А может я дурак, чего не понимаю!!!
Leonid Troyanovsky (2007-05-05 12:15:00) [3]
> Nemec © (05.05.07 11:34) [2]
http://groups.google.com/group/fido7.ru.delphi/msg/4f6cb6c1e2e77ec7
--
Regards, LVT.
Nemec (2007-05-05 11:34:00) [4]Использую следующий код:
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;
Может кто подскажет в чем дело, комп не выключается пока не войдешь в систему.
Если сервис запускается с системной учетной записью все Ок.
Nemec (2007-05-04 22:13:00) [5]Использую ExitWindowsEx, привилегии даются.