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

Вниз

Я надо минимизировать вси другие приложения...   Найти похожие ветки 

 
boby_g ©   (2003-01-06 22:19) [0]

Работаю по програму - Аларма.
Потребитель ввеждает час аларме
и когда этот час наступает,
програма надо минимизирует вси
другие приложения и надо изсвирит
звоковый файл.

Я искаю процедуру или функцию,
которая минимизирует вси другие
приложения.

И в конце извините мой плахой
русский язык


 
Оливейра ©   (2003-01-06 22:38) [1]

Поможем братьям-славянам:

1) GetDesktopWindow - возвращает hWnd рабочего стола
2) EnumChildWindows - цикл по top-level-окнам рабочего стола
3) SendMessage + WM_ACTIVATE
4) PlaySound

Подробней см. help (F1). Windows SDK


 
Rouse_ ©   (2003-01-06 22:43) [2]

На вскидку выглядит примерно так

procedure TForm1.Button1Click(Sender: TObject);
var
Wnd : hWnd;
buff: ARRAY [0..127] OF Char;
wArray: array of hWnd;
wCount, I: Integer;
begin
wCount:= 0;
Wnd := GetWindow(Handle, gw_HWndFirst);
while Wnd <> 0 do begin
if (Wnd <> Application.Handle) and
IsWindowVisible(Wnd) and
(GetWindow(Wnd, gw_Owner) = 0) and
(GetWindowText(Wnd, buff, sizeof(buff)) <> 0)
then begin
Inc(wCount);
SetLength(wArray, wCount);
wArray[wCount-1] := Wnd;
end;
Wnd := GetWindow(Wnd, gw_hWndNext);
end;
for i:= 0 to wCount- 1 do ShowWindow(wArray[i], SW_MINIMIZE);
end;


Желаю успехов


 
Rouse_ ©   (2003-01-06 22:51) [3]

Вот забыл добавить, в конце нужно

SetLength(wArray, 0);
sndPlaySound(Путь_К_Звуковому_Файлу, SND_ASYNC);


Для использования sndPlaySound, в uses нужно прописать mmsystem

Желаю успехов



 
Оливейра ©   (2003-01-06 23:16) [4]

Да ну нахрен, короче можно :-)

procedure TForm1.Button1Click(Sender: TObject);
var hDesktop: HWND;
function EnumFunc(h_wnd: HWND; l_Param: LPARAM): BOOL; stdcall;
begin
if (
(h_wnd <> 0) and
(IsWindowVisible(h_wnd)) and
(GetParent(h_wnd) = 0)
) then
begin
ShowWindow(h_wnd, SW_MINIMIZE);
end;
result:=true;
end;
begin
hDesktop:=GetDesktopWindow();
EnumChildWindows(hDesktop, @EnumFunc, 0);
//EnumWindows(@ENumFunc, 0);
end;


 
Rouse_ ©   (2003-01-06 23:34) [5]

Конечно можно :)
Я просто накидал код на скорую руку не сильно напрягаясь :))
Результат то одинаков

Желаю успехов



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

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

Наверх




Память: 0.48 MB
Время: 0.012 c
3-48924
Ipx
2002-12-20 15:54
2003.01.16
Как определить существующие на компьютере псевдонимы?


1-49105
SinnerPro
2003-01-05 10:56
2003.01.16
Как что-то сделать перед закрытием приложения?


4-49350
SmallVS
2002-11-27 12:06
2003.01.16
Прозрачное меню


1-49047
drin
2003-01-07 19:09
2003.01.16
Можно ли делать чтото вроде етого:


1-49163
Shodan
2003-01-05 23:33
2003.01.16
Внешний вид