Текущий архив: 2003.02.17;
Скачать: CL | DM;
Внизкак свернуть все окна? Найти похожие ветки
← →
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;
Скачать: CL | DM;
Память: 0.46 MB
Время: 0.01 c