![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как программно свернуть все окна? [D5, Win95/98, WinME, NT4, WinXP]
BaDeVlad © (2003-03-06 19:22:00)Есть такая команда, по умолчанию в 98 винде в КвикЛанче торчит. Как ее программно сделать?
GROL (2003-03-10 20:07:00) [1]Вы смотрели свойства той "пымпочки"?
там ссылка на scf файл такого содержания:
[Shell]
Command=2
IconFile=explorer.exe,3
[Taskbar]
Command=ToggleDesktop
Я просто, создаю свой такой файл, делаю ShellExecute, и убиваю его, а винда там сама пускай разберается кого куда.
Song (2003-03-08 15:57:00) [2]Да просто Win+M симулировать.
Diamond Cat (2003-03-08 15:44:00) [3]2 Anatoly Podgoretsky, функция Closewindow не закрывает а минимизирует окна.
2 Юрий Зотов, есть еще окна которые не видны лишь потому что они не имеют размера, это проверить тоже надо.
Возможно лучше проверять имеют ли окна закладку в панели задачь через Getwindowlong
Романов Р.В. (2003-03-08 14:12:00) [4]Lord Warlock © (12.02.03 16:08)
Если хорошо порыться, все можно найти :)
1. в меню Project выбираем ImportTypeLibrary, говорим Add, лезем в каталог виндов\System32 и находим файл Shell32.DLL, он добавляется в список. Говорим CreateUnit, появряется Shell32_TLB.pas,
2 В программе пишем uses Shell32_TLB; и далее
var f:TShell;
begin
f:=TShell.Create(nil);
f.MinimizeAll;
end;
ЗЫ Сделал минут за 5, может быть криво работать под разными виндами, специально не выяснял
Юрий Зотов (2003-03-08 11:43:00) [5]>Lord Warlock © (07.03.03 10:05)
>> AlexRush © (06.03.03 20:05)
>> Уважаемый, видел бы ты, как твой код глюканул...
Он не глюканул. Он абсолютно честно и абсолютно точно выполнил абсолютно то, что Вы и хотели - свернул ВСЕ окна. Все подряд, без разбора. Каков вопрос - таков ответ.
Чуть-чуть подправьте:
My_EnumWindowsProc(hWnd:DWORD;param:LPARAM):BOOL;stdcall;
begin
if IsWindowVisible(hWnd) then CloseWindow(hWnd)
end;
Lord Warlock (2003-03-07 10:12:00) [6]
> BaDeVlad
Я недели 3 назад писал как сделать тоже самое, но ветки уже нет.
Идея была в импорте библиотеки Shell32.dll, и дальнейшем вызове ее методов, в том числе и MinimizeAll. Впрочем вариант
Anatoly Podgoretsky ©не исключается.
Anatoly Podgoretsky (2003-03-07 10:12:00) [7]А ты чего оиждал от этого, он же безоговорочно закрывает окна, не скрывает, не минимизирует, а именно закрывает все подряд. Надеюсь не сильно систему порушил.
Lord Warlock (2003-03-07 10:05:00) [8]
> AlexRush © (06.03.03 20:05)
Уважаемый, видел бы ты, как твой код глюканул...
Anatoly Podgoretsky (2003-03-06 20:10:00) [9]Эта кнопка связана с командным файлом для проводника
Смотри в реестре ключ SHCmdFile
По идее ты можешь запустить этот файл с помощью ShellExecute
AlexRush (2003-03-06 20:05:00) [10]My_EnumWindowsProc(hWnd:DWORD;param:LPARAM):BOOL;stdcall;
begin
CloseWindow(hWnd);// минимизирует окно
end;
procedure MinimizeAllWindows;
begin
EnumWindows(@My_EnumWindowsProc,0);
end;