Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2003.11.13;
Скачать: CL | DM;

Вниз

Блокировка спящего режима   Найти похожие ветки 

 
wwolf   (2003-09-05 09:17) [0]

Подскажите пожалуйста, какие сообщения воникают при переходе компьютера в спящий режим, и каким образом их перехватывать, чтобы не позволить в этот режим перейти?


 
Song ©   (2003-09-05 09:32) [1]

WM_POWERBROADCAST


 
wwolf   (2003-09-05 10:57) [2]

А если подробнее?


 
Song ©   (2003-09-05 12:09) [3]

Поподробнее в SDK или MSDN


 
wwolf   (2003-09-05 14:49) [4]

Подскажите, что не так. Ставлю Hook, нажимаю Sleep, и компьютер преспокойно засыпает, Мастера, посмотрите. где ошибки.
ibrary Hook;
uses Windows, Messages;
var HookHandle: HHOOK;
function GetMessageHook(HookCode, RemovalFlag, MsgAddr: integer): integer; stdcall;
begin
if HookCode < 0 then Result := CallNextHookEx(HookHandle, HookCode, RemovalFlag, MsgAddr)
else begin
Result := 0;
with TMsg(Pointer(MsgAddr)^) do if (message = WM_POWERBROADCAST) then wParam := BROADCAST_QUERY_DENY
end
end;

function SetHook: boolean; stdcall;
begin
HookHandle := SetWindowsHookEx(WH_GETMESSAGE, @GetMessageHook, HInstance, 0);
Result := HookHandle <> 0
end;

function RemoveHook: boolean; stdcall;
begin
Result := UnhookWindowsHookEx(HookHandle)
end;

exports SetHook, RemoveHook;
begin

end.


 
Almaz ©   (2003-09-06 00:50) [5]


> wwolf (05.09.03 14:49) [4]
> Подскажите, что не так. Ставлю Hook, нажимаю Sleep, и компьютер
> преспокойно засыпает, Мастера, посмотрите. где ошибки.

Ошибка в том, что хук не нужен. Нужно всего лишь в своей программе обрабатывать сообщение WM_POWERBROADCAST и возвращать BROADCAST_QUERY_DENY.
Примерно, это будет выглядеть так:

type
TForm1 = class(TForm)
private
procedure WMPowerBroadcast(var Message: TMessage); message WM_POWERBROADCAST;
...
end;

...

const
PBT_APMQUERYSUSPEND = 0;

procedure TForm1.WMPowerBroadcast(var Message: TMessage);
begin
if Message.Wparam = PBT_APMQUERYSUSPEND then
Message.Result := BROADCAST_QUERY_DENY;
end;


Удачи.


 
lex ©   (2003-09-08 08:35) [6]

Можно ли тоже самое для монитора?
пришлите ответ на мыло.


 
Song ©   (2003-09-08 08:54) [7]

WM_SYSCOMMAND соответственно.



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

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

Наверх




Память: 0.48 MB
Время: 0.024 c
1-41266
Serg™
2003-10-31 16:23
2003.11.13
Help


3-41088
paul_k
2003-10-23 13:39
2003.11.13
Параметры в TAdoDataSet


4-42290
Omega27
2003-09-10 20:31
2003.11.13
Взят кусок из одново окна в другого.


3-40798
Виталя
2003-10-22 15:17
2003.11.13
Как отследить поле NULL возвращаемое хранимой процедурой ?


1-41279
Poof-poof
2003-11-04 15:43
2003.11.13
Открытие файла