Главная страница
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.47 MB
Время: 0.025 c
3-48911
Calm
2002-12-19 14:06
2003.01.16
В чем отличие dialect1 от dialect3?


14-49249
gsu
2002-12-26 20:15
2003.01.16
А почему ?


3-48931
ec
2002-12-20 15:42
2003.01.16
Компонент типа TTable без использования BDE или ADO


4-49375
race1
2002-11-28 06:34
2003.01.16
api


3-48868
VS2002
2002-12-24 09:19
2003.01.16
Удобный Grid