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

Вниз

Минимизация приложения   Найти похожие ветки 

 
Vasily Terekhov   (2002-11-06 12:04) [0]

Привет.

Написал hook, который в ответ на комбинацию клавиш, сворачивает активное приложение. Для этого посылаю сообщение активному окну:

w := GetForegroundWindow;
SendMessage(w, WM_SYSCOMMAND, SC_MINIMIZE, 0);


Но этот код сворачивает только окно, я же хочу добиться сворачивания всего приложения, независимо, какое окно этого приложения активно.

Для этого я переделал код:

w := GetForegroundWindow;
while GetParent(w) <> 0 do
w := GetParent(w);
SendMessage(w, WM_SYSCOMMAND, SC_MINIMIZE, 0);


Это заработало, но не для всех окон.

Сразу отмечу, что дестировал я это на IDE Delphi.
Так вот, если например активно окно Object Inspector, то все нормально, т.к. Object Inspector имеет предка главное окно дельфи.

Но если активно окно редактора кода, то мой код не прокатывает, т.к. редактор кода вообще не имеет parent"а.

Вопрос собственно в чем: можно ли свернуть все приложение, зная только дескриптор одного из окон, принадлежащих приложению?

я так понимаю, что надо получить дескриптор главного окна приложения.

Можно ли его получить, зная ID процесса приложения? (т.к. ID процесса можно получить по любому окну приложения с помощью GetWindowThreadProcessID)


 
Marcus   (2002-11-06 13:54) [1]

У любого окна, у которого нет Parent"a, есть Owner, а это и есть главное окно приложения
GetWindow(w, GW_OWNER)


 
Vasily Terekhov   (2002-11-06 14:49) [2]

Ok, Marcus
Thanks



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

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

Наверх





Память: 0.44 MB
Время: 0.008 c
14-61776
Tenger
2002-11-28 00:12
2002.12.19
Ликбез по сетям, плииииз!


8-61705
Владимир Васильев
2002-09-04 13:06
2002.12.19
NEWS: ЭКВАЛАЙЗЕР


7-61842
Sergey V. Shadrin
2002-09-30 16:02
2002.12.19
как определить запущенная ли программа


6-61742
DED LOGOPED
2002-10-22 20:21
2002.12.19
Помогит с сокетами, как увеличить скорость обращения?


3-61449
basile
2002-11-30 15:56
2002.12.19
Aggragete





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