![]() |
|
|
Регистрация | << Правила форума >> | FAQ | Пользователи | Календарь | Поиск | Сообщения за сегодня | Все разделы прочитаны |
![]() |
|
Опции темы | Поиск в этой теме | Опции просмотра |
#1
|
|||
|
|||
![]() Всем привет! Я новичок в Delphi) Прошу помощи экспертов. Мне нужно добавить процедуру чтобы свернулись/скрылись все окна раб. стола кроме своей формы.
Допустим играет Winamp или просматриваю картинки. Я запускаю project.exe и все активные окна сворачиваются кроме project2.exe Помогите сделать плиз) Нашел в Google такой код: Код:
var WH:HWnd; begin WH:=Handle; repeat WH:=GetNextWindow(WH,GW_HWNDNEXT); if (GetParent(WH)=0)and(not IsIconic(WH))and(IsWindowVisible(WH)) then PostMessage(WH,WM_SYSCOMMAND,SC_MINIMIZE,0); until WH=0; Но здесь сворачиваются все окна. |
#2
|
||||
|
||||
![]() Сравнивай найденный хендл со своим и не трогай или после сворачивания всех своё разверни.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Slackerok (31.01.2013)
|
#3
|
|||
|
|||
![]() Спасибо за оперативный ответ! Я понял в теории как сделать, вот практика немного хромает(... Если можете объясните пожалуйста поподробнее с примерами кода.
|
#4
|
||||
|
||||
![]() Проверил, с этим кодом сворачиваются все окна, кроме запущенного приложения.
Код:
procedure TForm1.FormCreate(Sender: TObject); var Wnd : HWND; begin Wnd := Handle; repeat Wnd := GetNextWindow(Wnd, GW_HWNDNEXT); if (GetParent(Wnd) = 0) and (not IsIconic(Wnd)) and (IsWindowVisible(Wnd)) then PostMessage(Wnd, WM_SYSCOMMAND, SC_MINIMIZE, 0); until Wnd = 0; end; Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Slackerok (31.01.2013)
|
#5
|
|||
|
|||
![]() Да, но если допустим использовать процедуру с таймером вместе, тогда сворачивается и основная форма... А мне нужно чтобы форма так сказать стояла на месте при любых случаях...
|
#6
|
||||
|
||||
![]() Причём тут таймер? Код выполняется ДО всего остального.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Slackerok (31.01.2013)
|
#7
|
|||
|
|||
![]() ну да вы правы, но допустим мне нужно чтобы сворачивалось всегда Winamp, или вообще все окна всегда сворачиваются кроме моей формы. Как это сделать? Конечно же легче таймером создать цикл? Нет? Вот в этом цикле при тестах данный код сворачивает все окна, в том числе и нашу форму за них...
|
#8
|
||||
|
||||
![]() Все сворачиваются кроме запущенного приложения.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Slackerok (31.01.2013)
|
#9
|
|||
|
|||
![]() Код работает, но попробуйте создать цикл с таймером чтобы сворачивание шло допустим каждые 1 секунд, увидите что сворачивается и наша форма. А нам ведь нужно чтобы она не сворачивалась) Вот пример:
|
#10
|
||||
|
||||
![]() На кой спрашивается это нужно? Хочется извращений, пожалуйста, но такие вещи так не делаются.
Je venus de nulle part 55.026263 с.ш., 73.397636 в.д. |
Этот пользователь сказал Спасибо angvelem за это полезное сообщение: | ||
Slackerok (31.01.2013)
|
#11
|
||||
|
||||
![]() Не проще ли на отдельный десктоп перепрыгнуть, как это делает "cureit!"?
— Как тебя понимать? — Понимать меня не обязательно. Обязательно меня любить и кормить вовремя. На Delphi, увы, больше не программирую. Рекомендуемая литература по программированию |
Этот пользователь сказал Спасибо M.A.D.M.A.N. за это полезное сообщение: | ||
Slackerok (31.01.2013)
|
#12
|
||||
|
||||
![]() Код:
if (GetParent(Wnd) = 0) and (not IsIconic(Wnd)) and (IsWindowVisible(Wnd)) and (Application.Handle<>Wnd) then Цитата:
Пишу программы за еду. __________________ Последний раз редактировалось NumLock, 31.01.2013 в 09:31. |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Slackerok (31.01.2013)
|
#13
|
|||
|
|||
![]() Цитата:
Интересно) Можно поподробнее об этом? |
#14
|
||||
|
||||
![]() CreateDesktop function (Windows)
CreateProcess function (Windows) Цитата:
Пишу программы за еду. __________________ |
Этот пользователь сказал Спасибо NumLock за это полезное сообщение: | ||
Slackerok (31.01.2013)
|