Showwindow и FindwindowНа данной странице речь пойдет о двух API функциях, с помощью которых осуществляется показ и скрытие различных окон, программ, элементов Windows с глаз пользователя. Рассмотрим каждую из функций подробнее...
function ShowWindow(Wnd: HWnd; CmdShow: Integer); Первый параметр функции указывает окно, с которым будет происходить та или иная операция, а второй указывает операцию, которая требуется. Нам нужны только две основные операции, это показ окна -
sw_show и его скрытие -
sw_hide. Список остальных операций с окном можно узнать из Microsoft Win32 Programmer's Reference, идущей в комплекте справки с Delphi.
Если мы хотим скрыть нашу программу, то пишем:
procedure TForm1.Button1Click(Sender: TObject);
begin
showwindow(application.MainForm.Handle,sw_hide);
end;Чтобы скрыть кнопку программы из трэя и по Alt-Tab, пишем это...
procedure TForm1.Button1Click(Sender: TObject);
begin
showwindow(application.Handle,sw_hide);
end;Ну и чтоб это все потом, естественно показать, на месте
sw_hide пишем
sw_show.
Рассмотрим вторую функцию:
function FindWindow(ClassName, WindowName: PChar): HWnd;С помощью этой функции мы находим в системе окно по заданным нами параметрам. Возвратным значением данной функции будет
handle искомого нами окна, если такое существует и 0, если не существует. Первый её параметр указывает на класс объекта, по которому во всей системе можно найти сам объект, а во втором параметре указывается текст в заголовке этого объекта. Например у нас есть открытая папка под названием "Музыка". Значит в заголовке открытого окна есть надпись "Музыка". Нам необходимо скрыть данное окно с рабочего стола. Для этого пишем:
procedure TForm1.Button1Click(Sender: TObject);
begin
showwindow(findwindow(nil,'Музыка'),sw_show);
end;После нажатия на кнопку, наше окно исчезнет с глаз долой. Но эксмериментировать с простыми окнами не интересно. Давайте немного позабавимся с ОС. Приведенный ниже код сможет скрыть весь
traybar:
procedure TForm1.Button1Click(Sender: TObject);
begin
showwindow(findwindow('shell_tray_wnd',nil),sw_show);
end;Здесь мы делаем поиск уже не по заголовку объекта, а по его классу. Константа "
Shell_traywnd" указывает как раз на наш системный трэй. Если хорошо поискать такие константы, то можно например скрыть значки рабочего стола, написав константу "progman". Также можно скрыть кнопку пуск, или системные часы...