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

Вниз

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

 
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 вся ветка

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

Наверх





Память: 0.45 MB
Время: 0.034 c
3-40868
denmin
2003-10-21 11:00
2003.11.13
как сохранить запрос SP в таблицу.


7-42182
Nicky
2003-08-28 12:53
2003.11.13
существует ли таскбар ?


1-41497
qwe
2003-10-28 15:44
2003.11.13
Еще вопрос


14-41904
bis
2003-10-21 16:13
2003.11.13
чем дальше, тем умнее


3-40880
Olga
2003-10-20 15:41
2003.11.13
Объединение запросов





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский