Экспертная система Delphi.int.ru

Сообщество программистов
Общение, помощь, обмен опытом

Логин:
Пароль:
Регистрация | Забыли пароль?

Delphi.int.ru Expert

Другие разделы портала

Переход к вопросу:

#   

Статистика за сегодня:  


Лучшие эксперты

Подробнее »



Вопрос # 318

/ вопрос открыт /

Здравствуйте.Ответте мне пожалуйста на вопрос как свернуть все окна.

Толков Геннадий Викторович Вопрос ожидает решения (принимаются ответы, доступен мини-форум)

Вопрос задал: Толков Геннадий Викторович (статус: Посетитель)
Вопрос отправлен: 17 февраля 2007, 01:43
Состояние вопроса: открыт, ответов: 3.

Ответ #1. Отвечает эксперт: Сергей Устинов

Здравствуйте, Толков Геннадий Викторович!

keybd_event(VK_LWIN, 0, 0, 0);
keybd_event(Ord('D'), 0, 0, 0);
keybd_event(Ord('D'), 0, KEYEVENTF_KEYUP, 0);
keybd_event(VK_LWIN, 0, KEYEVENTF_KEYUP, 0);

Удачи!

Ответ отправил: Сергей Устинов (статус: 2-ой класс)
Время отправки: 17 февраля 2007, 01:50
Оценка за ответ: 5

Ответ #2. Отвечает эксперт: Alex Van Glukhman

Здравствуйте, Толков Геннадий Викторович!

Вот рабочий пример консольного приложения

program Project3;
uses
Windows,
Messages;

var Count:integer;

function EnumProc (WinHandle: HWnd; Param: LongInt): Boolean; stdcall;
begin
if (GetParent (WinHandle) = 0) and (not IsIconic (WinHandle)) and
(IsWindowVisible (WinHandle)) then
begin
PostMessage (WinHandle, WM_SYSCOMMAND, SC_MINIMIZE, 0);
Inc(Count);
end;
EnumProc := TRUE;
end;

begin
Count:=0;

EnumWindows (@EnumProc, 0);
Writeln('Minimized:',Count,' windows');
end.

Ответ отправил: Alex Van Glukhman (статус: 7-ой класс)
Время отправки: 17 февраля 2007, 06:53
Оценка за ответ: 4

Ответ #3. Отвечает эксперт: Роман

Здравствуйте, Толков Геннадий Викторович!Можно сделать так: для начала нужно импортировать в среду Delphi компоненты, позволяющие получить доступ к функциям оболочки (Microsoft Shell Controls & Automation Type Library). Для этого откройте окно Project - Import Type Library. Найдите в списке строку "Microsoft Shell Controls & Automation (version 1.0)" и нажмите Install. Установленные компоненты при неизменных параметрах установки появятся на вкладке ActiveX.Компонент TShell как раз и предоставляет те функции оболочки, которые нас интересуют. Поместите его на форму. Он включает все необходимые методы. Например, чтобы свернуть все окна (аналог функции значка "Minimize all" на панели быстрого запуска), следует написать всего одну строку:
procedure TForm1.Button1Click(Sender: TObject);
begin
Shell1.MinimizeAll;
end;
Также я перечислю все остальные функции, которые теперь находятся в нашем распоряжении:

Explore('путь') - открытие Проводника Windows на указанном каталоге.

Open('команда') - примерно то же самое, что и функции WinExec(), ShellExecute() и т.д., т.е. выполнение указанной команды - запуск программы, открытие документа и т.д.

MinimizeAll - команда "Свернуть все окна".

UndoMinimizeALL - обратная команда - восстанавливает все окна, которые ранее были открыты.

FileRun - открывает диалог запуска программы (Пуск - Выполнить).

CascadeWindows - расставляет все открытые окна в каскадном порядке.

TileVertically - расставляет окна таким образом, чтобы все они были видны на экране и не перекрывали друг друга.

TileHorizontally - тоже самое, что и TileVertically только в горизонтальном направлении.

ShutdownWindows - запускает диалог завершения работы Windows.

SetTime - открывает окно установки даты и системного времени.

TrayProperties - открывает окно настроек иконок системной области (tray).

Help - вызывает справочную систему Windows.

FindFiles - запускает диалог поиска файлов.

FindComputer - запускает диалог поиска компьютеров.

С помощью всех этих функций можно создать полноценную замену всему меню "Пуск". Однако, обратите внимание, что в разных версиях Windows некоторые из этих функций могут работать по-разному, а то и вообще отсутствовать.

Ответ отправил: Роман (статус: 5-ый класс)
Время отправки: 17 февраля 2007, 11:13
Оценка за ответ: 4


Мини-форум вопроса

Всего сообщений: 3; последнее сообщение — 17 февраля 2007, 15:44; участников в обсуждении: 3.
Alex Van Glukhman

Alex Van Glukhman (статус: 7-ой класс), 17 февраля 2007, 06:58 [#1]:

Прошу прощения Writeln('Minimized:',Count,' windows'); не надо.
Pokemonchyk

Pokemonchyk (статус: Посетитель), 17 февраля 2007, 13:41 [#2]:

вопрос походу: как свернуть окно своей програмки?
(програмным путем конешно же)...
Роман

Роман (статус: 5-ый класс), 17 февраля 2007, 15:44 [#3]:

Свойство формы WindowState;
Form1.WindowState:=wsMinimized;

Чтобы оставлять сообщения в мини-форумах, Вы должны авторизироваться на сайте.

Версия движка: 2.6+ (26.01.2011)
Текущее время: 22 февраля 2025, 12:00
Выполнено за 0.02 сек.