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

Вниз

Как перехватить нажатие кнопки Windows и M   Найти похожие ветки 

 
Евгений Дем.   (2002-08-31 11:33) [0]

Такакя проблема: Делаю программу которая минимизируеться в трею - соответственно обработал сообщения WM_SysCommand в самой форме и в Application (что бы минимизировалось при выборе пункта минимизировать в панели задачь) - но как вы наверное знаете при нажатии кнопки со значком Windows и клавиши с аниглийской M происходит минимизация всех окон (не модальных) но однако ни приложение Application ни форма не получают сообщение WM_SysCommand с параметром Sc_Minimize И соответственно приложение минимизируется в панель задачь а ни в трею.
Так вот кто знает как это победить прошу ответить и пошлите пожалуйста ваше предложение мне на E-mail demonoff@cmail.info.kuzbass.net так как в интернет хожу не часто (за неимением доступа) а почту читаю
P.S. - Такую же недоработку встречал во многих программах - например в The Bat !


 
Евгений Дем   (2002-09-05 09:36) [1]

Ну может кто нибуть ответит


 
Юрий Зотов ©   (2002-09-05 09:57) [2]

Есть предположение, что Win+M на самом деле не минимизирует, а просто прячет все окна (то есть, идет совсем другое сообщение). Проверить легко - запустить WinSight и посмотреть, какое сообщение реально приходит. Его и ловить.


 
msts   (2002-09-05 10:35) [3]

Я бы сказал что вообще не посылаются сообщения окнам...
за исключением только listview показывающему рабочий стол с иконками - что то вроде "bring to front" путем вызова SetWindowPos(тряляля, ???_TOP) (забыл константы)


 
Ученик ©   (2002-09-05 10:45) [4]

Посылается WM_ShowWindow с SW_PARENTCLOSING, но обработка ShowWindow(Application.Handle, SW_HIDE) почему-то кнопку на TaskBar не скрывает


 
Ученик ©   (2002-09-05 11:17) [5]

procedure TForm1.FormCreate(Sender: TObject);
begin
Application.HookMainWindow(DoMessage)
end;

function TForm1.DoMessage(var Message : TMessage) : Boolean;
begin
Result := False;
if (Message.Msg = WM_SIZE) then begin
case Message.WParam of
SIZE_MINIMIZED : ShowWindow(Application.Handle, SW_HIDE);
SIZE_RESTORED : ShowWindow(Application.Handle, SW_SHOW);
end
end
end;



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
3-50644
savva
2002-08-23 14:26
2002.09.16
Блокировка файла не возможна - что это и с чем едят:))


1-50720
Micah'GF
2002-09-05 11:56
2002.09.16
Выключить монитор и блокировать клавиатуру.


14-50951
pkm
2002-08-20 21:18
2002.09.16
Сеть!!!


3-50650
Dorosh
2002-08-27 09:44
2002.09.16
Обновление Lookup поля


14-50969
Мася
2002-08-22 08:22
2002.09.16
Господа!