Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 730

/ вопрос открыт /

Здравствуйте, уважаемые эксперты! Подскажите пожалуйста как поставить комп программно именно в спящий режим, а не в ждущий. У меня SP2.Заранее благодарен.

Geron Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Geron (статус: 1-ый класс)
Вопрос отправлен: 12 июля 2007, 00:45
Состояние вопроса: открыт, ответов: 2.

Ответ #1. Отвечает эксперт: min@y™

Вот в хэлпе о функции SetSystemPowerState():

The SetSystemPowerState function suspends the system by shutting power down. Depending on the ForceFlag parameter, the function either suspends operation immediately or requests permission from all applications and device drivers before doing so.

BOOL SetSystemPowerState(
BOOL fSuspend,
BOOL fForce);


Parameters

fSuspend

Suspension technique. If TRUE, the system suspends using RAM-alive technique. Otherwise, suspends using hibernate technique.

fForce

Forced suspension. If TRUE, the function sends a PBT_APMSUSPEND message to each application and driver, then immediately suspends operation. If FALSE, the function sends a PBT_APMQUERYSUSPEND message to each application to request permission to suspend operation.

Существенные места я выделил жирным шрифтом.

Ответ отправил: min@y™ (статус: Доктор наук)
Время отправки: 12 июля 2007, 08:20

Ответ #2. Отвечает эксперт: Градов Ю.М.

Здравствуйте, Geron!
В приложении посмотрите ответ на Ваш вопрос.
Удачи!!!

Приложение:
  1. procedure TForm1.Button1Click(Sender: TObject);
  2. var
  3. hToken: THandle;
  4. tkp: TTokenPrivileges;
  5. ReturnLength: Cardinal;
  6. begin
  7. if OpenProcessToken(GetCurrentProcess(), TOKEN_ADJUST_PRIVILEGES or
  8. TOKEN_QUERY, hToken) then
  9. begin
  10. LookupPrivilegeValue(nil, 'SeShutdownPrivilege', tkp.Privileges[0].Luid);
  11. tkp.PrivilegeCount := 1;
  12. tkp.Privileges[0].Attributes := SE_PRIVILEGE_ENABLED;
  13. if AdjustTokenPrivileges(hToken, False, tkp, 0, nil, ReturnLength) then
  14. SetSystemPowerState(true, true);
  15. end;
  16. end;


Ответ отправил: Градов Ю.М. (статус: 8-ой класс)
Время отправки: 12 июля 2007, 19:09


Мини-форум вопроса

Мини-форум пуст.

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 11:34
Выполнено за 0.02 сек.