Главная страница
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.015 c
1-50662
lmr
2002-09-02 16:18
2002.09.16
Как Variant привести к int64 ?


3-50626
Ник
2002-08-26 17:38
2002.09.16
ftGraphic


7-50985
Linc
2002-07-04 01:53
2002.09.16
Доступ к ярлыкам на рабочем столе.


1-50857
Song
2002-09-04 17:23
2002.09.16
Хук на сообщение WM_SYSCOMMAND. Проблема.


14-50916
Мася
2002-08-21 09:11
2002.09.16
Автозагрузка