В этой статье я хотел бы описать полезную функцию не документированную GetTaskmanWindow. Функция GetTaskmanWindow возвращает дескриптор
окно, которое владеет кнопками панели задач. Вот цитата о панели задач из Microsoft MSDN: "Программа Microsoft® для Windows® интерфейс, включающий приложение
панель называется панелью задач. Панель задач может использоваться для выполнения таких задач, как переключение между открытыми
Windows и запуск новых приложений..." и "панель задач содержит меню Пуск, кнопки панели задач, контекстное меню и панель состояния...". К сожалению, Win32 API не содержит документированных
функция, которая может быть использована для доступа к задач, поэтому мы должны снова использовать недокументированный способ.
Вот прототип для GetTaskmanWindow:
функция GetTaskmanWindow (): HWND;
Как всегда, корпорация Майкрософт не предоставляет нам символы экспорт в библиотека user32.lib для этой функции, поэтому мы должны загрузить их динамически, используя
Функции GetModuleHandle и GetProcAddress:
Code: |
// This example will show you how you can obtain a handle to the // Windows Taskbar window. // Translated from C to Delphi by Thomas Stutz // Original Code: // (c) Ashot Oganesyan K, SmartLine, Inc // mailto:Этот адрес электронной почты защищён от спам-ботов. У вас должен быть включен JavaScript для просмотра.,
function TaskmanWindow: HWND; type TGetTaskmanWindow = function(): HWND; stdcall; var hUser32: THandle; GetTaskmanWindow: TGetTaskmanWindow; begin Result := 0; hUser32 := GetModuleHandle('user32.dll'); if (hUser32 > 0) then begin @GetTaskmanWindow := GetProcAddress(hUser32, 'GetTaskmanWindow'); if Assigned(GetTaskmanWindow) then begin Result := GetTaskmanWindow; end; end; end;
procedure ShowTaskmanWindow(bValue: Boolean); var hTaskmanWindow: Hwnd; begin hTaskmanWindow := TaskmanWindow; if hTaskmanWindow <> 0 then begin ShowWindow(GetParent(hTaskmanWindow), Ord(bValue)); end; end;
// Example to Hide the Taskman Window procedure TForm1.Button1Click(Sender: TObject); begin ShowTaskmanWindow(False); end; |
Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.
ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!