В этой статье я хотел бы описать полезную функцию не документированную 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;

 

Добавить комментарий

Не использовать не нормативную лексику.

Просьба писать ваши замечания, наблюдения и все остальное,
что поможет улучшить предоставляемую информацию на этом сайте.

ВСЕ КОММЕНТАРИИ МОДЕРИРУЮТСЯ ВРУЧНУЮ, ТАК ЧТО СПАМИТЬ БЕСПОЛЕЗНО!


Защитный код
Обновить