![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Блокировка спящего режима [D5, Win95/98]
wwolf © (2003-09-05 09:17:00)
Подскажите пожалуйста, какие сообщения воникают при переходе компьютера в спящий режим, и каким образом их перехватывать, чтобы не позволить в этот режим перейти?
Song (2003-09-08 08:54:00) [1]
WM_SYSCOMMAND соответственно.
lex (2003-09-08 08:35:00) [2]
Можно ли тоже самое для монитора?
пришлите ответ на мыло.
Almaz (2003-09-06 00:50:00) [3]
> 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;
Удачи.
wwolf (2003-09-05 14:49:00) [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.
Song (2003-09-05 12:09:00) [5]
Поподробнее в SDK или MSDN
wwolf (2003-09-05 10:57:00) [6]
А если подробнее?
Song (2003-09-05 09:32:00) [7]
WM_POWERBROADCAST