![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Подскажите ;!!!! [D6, Win2k]
PETR © (2002-06-04 10:41:00)как сделать так чтобы при запуске моего приложение все окна на рабочем столе сворачивались,вопрос помойму уже обсуждался если не трудно дайте ссылку !
Зарание спасибо !
PETR (2002-06-04 12:50:00) [1]>Виктор Щербаков
Ура все получилось СПАСИБО !!!!!!!!!!!
PVOzerski (2002-06-04 12:34:00) [2]Опять же, уж коль скоро EnumWindows пользуемся, ужели трудно в
callback-функции сравнить хэндл найденного окна с хэндлом формы
приложения перед посылкой сообщения?
Виктор Щербаков (2002-06-04 12:31:00) [3]Вот так должно работать.
function EnumProc (WinHandle: HWnd; Param: LongInt): Boolean; stdcall;
begin
if (GetParent (WinHandle) = 0)
and (not IsIconic (WinHandle))
and (IsWindowVisible (WinHandle)
and (WinHandle <> Application.Handle))
and (WinHandle <> Form1.Handle) then
begin
PostMessage (WinHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Inc(Count);
end;
EnumProc := TRUE;
end;
PETR (2002-06-04 12:30:00) [4]> Игорь Шевченко
можно конечно , но возникает иногда потребности , приходиться лезть в дебри вы уж извиняйте !
PVOzerski (2002-06-04 12:29:00) [5]А может, СНАЧАЛА все окна свернуть, а уж ПОТОМ сделать форму
своего приложения видимой?
PETR (2002-06-04 12:25:00) [6]>Виктор Щербаков
нет не получилось и мое приложение свернулось
Игорь Шевченко (2002-06-04 12:21:00) [7]
> Я недавно начал изучать DELPHI (поэтому может чего недопонимаю,
> да и англиским туго)
А нельзя изучать Delphi на более простых и безобидных примерах ?
Program Files\Borland\Delphi\Demos\...
Виктор Щербаков (2002-06-04 12:09:00) [8]Попробуй так:
if (GetParent (WinHandle) = 0)
and (not IsIconic (WinHandle))
and (IsWindowVisible (WinHandle) and (WinHandle <> Form1.Handle))
then begin
PostMessage (WinHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Inc(Count);
Смысл в том, чтобы не отправлять сообщение в окна своего приложения.
PETR (2002-06-04 12:08:00) [9]Я недавно начал изучать DELPHI (поэтому может чего недопонимаю, да и англиским туго) но всетаки подскажите !!!!
PETR (2002-06-04 11:59:00) [10]Ребят попробовал выше перечисленный код сворачивает все(это хорошо),а мне надо чтоб мое приложение осталось не тронутым!!!
Song (2002-06-04 11:41:00) [11]2Виктор Щербаков © (04.06.02 10:55)
SC_MAXIMIZE и SC_CLOSE веселее :)))
PETR (2002-06-04 11:40:00) [12]Спасибо всем
Pat (2002-06-04 11:18:00) [13]
var count:integer;
....
function EnumProc (WinHandle: HWnd; Param: LongInt): Boolean; stdcall;
begin
if (GetParent (WinHandle) = 0)
and (not IsIconic (WinHandle))
and (IsWindowVisible (WinHandle))
then begin
PostMessage (WinHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Inc(Count);
end;
EnumProc := TRUE;
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
Count:=0;
EnumWindows (@EnumProc, 0);
caption:="Свернуто "+inttostr(count)+" окон";
end;
Игорь Шевченко (2002-06-04 11:17:00) [14]Я написал. В процедуре перечисления окон надо посылать каждому не своему окну это сообщение.
А зачем, кстати, это надо?
Виктор Щербаков (2002-06-04 11:16:00) [15]
> пришлось перезагружаться
Так и знал, что этим кончится :)
Если серьезно, то см. Игорь Шевченко © (04.06.02 10:46)
Почитай в SDK про EnumWindows.
PETR (2002-06-04 11:14:00) [16]Не ужели не подскажите !!!!!!!!!!!!!!!!!!!!!!!!!!!!
PETR (2002-06-04 11:12:00) [17]Ребят первый способ сворачивает только мое приложение ,а второй способ нет слов одни слюни :),обезобразил мой рабочий стол пришлось перезагружаться, всетаки как свернуть все окна на рабочем столе кроме моего А!
Виктор Щербаков (2002-06-04 10:55:00) [18]Игорь Шевченко © (04.06.02 10:51)
Всё намного интереснее :)))
Игорь Шевченко (2002-06-04 10:51:00) [19]Виктор Щербаков © (04.06.02 10:50)
Свое приложение при этом тоже сворачивается ? :-)
Виктор Щербаков (2002-06-04 10:50:00) [20]PostMessage (HWND_BROADCAST, WM_SYSCOMMAND, SC_MINIMIZE, 0)
:)))