Главная страница
    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.008 c
3-48938
_landy
2002-12-19 15:37
2003.01.16
TQuery & TStream


14-49196
maryan
2002-12-25 19:25
2003.01.16
Помогите найти компонент


3-48891
Serginio
2002-12-19 12:37
2003.01.16
Программа формирующая объекты для прямого доступа к файлам 1С


14-49208
Gari
2002-12-25 15:02
2003.01.16
Как вывести текст в другом приложении.


3-48958
lefan
2002-12-23 11:40
2003.01.16
Проблема с Query....





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
Английский Французский Немецкий Итальянский Португальский Русский Испанский