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

Вниз

как свернуть все окна?   Найти похожие ветки 

 
Natalia   (2003-02-06 15:20) [0]

Здравствуйте, Уважаемые. Цель такова: по нажатию на кнопку сворачиваются все (!) окна и через 4 секунды появляется сообщение с двумя кнопками да/нет с какой-то реакцией на "да" и "нет". Скажите, пожалуйста, как это осуществить в Delphi???
Надеюсь на Вашу помощь. Спасибо.


 
F1   (2003-02-06 15:30) [1]

1. Ищешь все окна
2. Сворачиваешь их
3. ставишь таймер на 4 сек.
4. после сраб. таймера выводишь кнопки да-нет
5. не забудь вернуть все взад, а то юзеры озвереют;)

Или я что-то не так понял????


 
Natalia   (2003-02-06 20:05) [2]

;-)
И всё-таки? Как же будет выглядеть программный код??? :-)
Please help!!!


 
Kotka   (2003-02-06 20:09) [3]

2. Каждому окну послать сообщение PostMessage(Handle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
4. if MessageDlg("",mtcofimation,[mbyes,mbno],0)=mryes then
...


 
gsu   (2003-02-06 20:10) [4]

если окна свои, то через перебор форм Screen, сворачивание, ...
а если все, то вот пример из ... :

Как свернуть все окна системы ??? (как свернуть все окна системы кроме окна программы)

// Любимая наша процедура.
{Для того чтобы использовать данный пример необходимо наличие кнопки Button1.}

function EnumMiniProc (Wd: HWnd; Param: LongInt): Boolean; stdcall; // Обязательно stdcall !!!
Begin
If Wd<>Form1.Handle then // если это не наша программа
If IsWindowVisible(WD) then // если окно видимо
If not IsIconic(WD) then // если окно не свернуто
If isWindow(WD) then // и вообще это - окно.
ShowWindow(WD, SW_MINIMIZE); // свернем его.
EnumProc := TRUE; // продолжаем перебирать все окна системы.
end;

procedure TForm1.Button1Click(Sender: : TObject); // допустим, закрываем по нажатию на клавишу
begin
EnumWindows (@EnumMiniProc, 0); // отрабатываем сворачивание окон.
end;


Для того чтобы окно программы тоже сворачивалось достаточно убрать строку If Wd<>Form1.Handle then в EnumMiniProc
Конечно, можно поставить еще массу условий, по которым будут минимизироваться окна, но это уже дело конкретной задачи.


 
Shadow   (2003-02-06 20:21) [5]

procedure TForm1.Button1Click(Sender: TObject);
VAR
Wnd : hWnd;
buff: ARRAY [0..127] OF Char;
begin
Wnd := GetWindow(Handle, gw_HWndFirst);
WHILE Wnd <> 0 DO
BEGIN
IF (Wnd <> Application.Handle) AND
(IsWindowVisible(Wnd)) THEN
BEGIN
GetWindowText(Wnd, buff, sizeof(buff));
ShowWindow(Wnd, SW_SHOWMINIMIZED);
END;
Wnd := GetWindow(Wnd, gw_hWndNext);
END;
Timer1.Enabled:=True;
end;


Ну а дальше я думаю не сложно %)


 
Kotka   (2003-02-07 00:33) [6]

GetWindowText(Wnd, buff, sizeof(buff));
Разве эта строка нужна?


 
Вадим   (2003-02-07 05:16) [7]

нет


 
alena.svt   (2003-02-07 08:47) [8]


procedure MinimizeAll;
begin
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), 0, 0);
keybd_event(Ord("M"),MapVirtualKey(Ord("M"), 0), 0, 0);
keybd_event(Ord("M"),MapVirtualKey(Ord("M"), 0), KEYEVENTF_KEYUP, 0);
keybd_event(VK_LWIN, MapVirtualKey(VK_LWIN, 0), KEYEVENTF_KEYUP, 0);
end;

Этим свернешь все окна.


 
Natalia   (2003-02-07 23:14) [9]

Спасибо :-)


 
___ALex___   (2003-02-07 23:45) [10]

согласен с Kotka
строки
buff: ARRAY [0..127] OF Char;
GetWindowText(Wnd, buff, sizeof(buff));
не нужны
и как следствие в коде ещё два бегина надо убрать



 
Юрий Зотов   (2003-02-08 07:32) [11]

> If isWindow(WD) then // и вообще это - окно.

А что, разве EnumWindows перечисляет и неокна тоже? Это новость.



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

Форум: "Основная";
Текущий архив: 2003.02.17;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.008 c
1-52873
FTNSoft
2003-02-05 19:01
2003.02.17
qtintf70.dll


1-52825
super_alex
2003-02-07 12:05
2003.02.17
Помогите с TImage


1-53060
cult
2003-02-06 18:01
2003.02.17
как преобразовать String в WideString?


1-53086
Романов Р.В.
2003-02-06 21:21
2003.02.17
Shell Object


3-52727
Moe
2003-01-29 17:50
2003.02.17
Как получить список всех таблиц БД ?





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