Главная страница
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.027 c
1-49035
Ruslan_
2003-01-07 23:02
2003.01.16
Форма


3-48903
Chudak
2002-12-20 13:48
2003.01.16
Как преоброзовать таблицу из dbaseIV в dbaseIII+


3-48867
S
2002-12-18 18:41
2003.01.16
Создание таблицы mdb?


1-49090
ScableR
2003-01-03 02:56
2003.01.16
Помогите разобраться в вопросе с Delphi & MySQL


4-49345
NoName123
2002-11-28 11:57
2003.01.16
Создаю формы динамически