Полезное для программистов:

Фриланс
Новости
Статьи
   
Рубрики:


Кто владелец taskbar buttons (NT)?

Поиск:
Код
{
 In this article, I wish to describe the useful undocumented function
 GetTaskmanWindow. The GetTaskmanWindow function returns a handle to
 the window that ownes the taskbar buttons.
 Here is the quoting about taskbar from Microsoft MSDN:
 "The Microsoft® Windows® interface includes a special application desktop
 toolbar called the taskbar.
 The taskbar can be used for such tasks as switching between open
 windows and starting new applications..."
 and "The taskbar includes the Start menu, taskbar buttons,
 a shortcut menu, and a status area...".
 Unfortunately, Win32 API doesn't contain documented
 function that can be used for accessing to the
 taskbar so we should again use an undocumented way.

 Here is the prototype for GetTaskmanWindow:

  function GetTaskmanWindow (): HWND;

 As always, Microsoft doesn't provide us with the exports symbols
 in the User32.lib for this function, so we should load them dynamically using the
 GetProcAddress and GetModuleHandle functions:
}

// getaskmanwnd.cpp (Windows NT/2000)
//
// 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)1999 Ashot Oganesyan K, SmartLine, Inc
// mailto:ashot@aha.ru, http://www.protect-me.com, http://www.codepile.com


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;






Просмотров: 1693

 

 

Новые статьи:


Популярные:
  1. Как сделать цикличным проигрывание MIDI-файла?
  2. Создание AVI файла из рисунков
  3. Как устройство "отключить в данной конфигурации"?
  4. Kто в данный момент присоединен через Сеть?
  5. Как узнать количество доступной памяти?
  6. Как реализовать в RichEdit разноцветный текст?
  7. Как скрыть свое приложение от ProcessViewer
  8. Как программно нажать/скрыть/показ кнопку "Start"?
  9. Модуль работы с ресурсами в PE файлах
10. Функции вызова диалоговых окон выбора
11. Проверка граматики средствами Word'а из Delphi.
12. Модуль для упрощенного вызова сообщений
13. Функции для записи и чтение своих данных в, ЕХЕ- файле
14. Рекурсивный просмотр директорий
15. Network Traffic Monitor
16. Разные модули
17. Универсальная функция для обращения к любым экспортируем функциям DLL
18. Библиотека от VladS
19. Протектор для UPX'а
20. Еще об ICQ, сообщения по контакт листу?
21. Использование открытых интерфейсов
22. Теория и практика использования RTTI
23. Работа с TApplication
24. Примеры использования Drag and Drop для различных визуальных компонентов
25. Что такое порт? Правила для работы с портами
26. Симфония на клавиатуре
27. Загрузка DLL
28. Исправление автоинкремента
29. Взаимодействие с чужими окнами
30. Проверить дубляжи в столбце


 

 

 
 
На главную