Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Основная";
Текущий архив: 2003.01.16;
Скачать: [xml.tar.bz2];

Вниз

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

 
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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.45 MB
Время: 0.01 c
4-49371
Cosmic
2002-11-29 19:43
2003.01.16
Глобальный хук


4-49340
Cosmic
2002-11-27 22:33
2003.01.16
Как проиграть MP3 средствами API ???


14-49210
Шишкин Егор
2002-12-23 13:48
2003.01.16
Кто за кого болеет?


3-48940
Che
2002-12-20 02:07
2003.01.16
DBComboBox


1-49004
Kurt
2003-01-07 02:31
2003.01.16
Для новичка





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский