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

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


Получение информации о TaskBar

Поиск:
Для вывода информации мы будет использовать компонент TStringGrid с закладки Additional.
Сначала вам нужно будет после
var
Form1: TForm1;
добавить следующий код:
Код

AppBarData : TAppBarData;
bAlwaysOnTop, bAutoHide : boolean;
Clrect,rect : TRect;
Edge: UInt;


затем после слова Implementation пишем
Код
procedure DetectTaskBar;
begin
 AppBarData.hWnd := FindWindow('Shell_TrayWnd', nil);
 AppBarData.cbSize := sizeof(AppBarData);
 bAlwaysOnTop := (SHAppBarMessage(ABM_GETSTATE, AppBardata)
 and ABS_ALWAYSONTOP) <> 0;
 bAutoHide := (SHAppBarMessage(ABM_GETSTATE, AppBardata)
 and ABS_AUTOHIDE) <> 0;
 GetClientRect(AppBarData.hWnd, Clrect);
 GetWindowRect(AppBarData.hwnd, rect);
 if rect.top > 0 then
   Edge := ABE_BOTTOM
 else
 if rect.bottom < screen.height then
   Edge:=ABE_TOP
 else
 if rect.right < screen.width then
   Edge:=ABE_LEFT
 else
   Edge:=ABE_RIGHT;
end;


и осталось описать самое главное - обработчик нажатия кнопки:
Код
procedure TForm1.Button1Click(Sender: TObject);
begin
 DetectTaskBar;

 StringGrid1.Cells[0,0] := 'Выше других окон';
 StringGrid1.Cells[0,1] := 'Автоматически убирать с экрана';
 StringGrid1.Cells[0,2] := 'Клиентская область';
 StringGrid1.Cells[0,3] := 'Оконная область';
 StringGrid1.Cells[0,4] := 'Края';

 if bAlwaysOnTop = true then
   StringGrid1.Cells[1,0] := 'true'
 else
   StringGrid1.Cells[1,0] := 'false';

 if bAutoHide = true then
   StringGrid1.Cells[1,1] := 'true'
 else
   StringGrid1.Cells[1,1] := 'false';

 StringGrid1.Cells[1,2] := IntToStr(Clrect.Left)+':'+IntToStr(Clrect.Top) +
 ':'+IntToStr(Clrect.Right)+':'+IntToStr(Clrect.Bottom);

 StringGrid1.Cells[1,3] := IntToStr(rect.Left)+':'+IntToStr(rect.Top) +
 ':'+IntToStr(rect.Right)+':'+IntToStr(rect.Bottom);

 StringGrid1.Cells[1,4] := IntToStr(Edge);
end;

Автор: DRKB
Сайт: http://delphiworld.narod.ru






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

 

 

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


Популярные:
  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. Проверить дубляжи в столбце


 

 

 
 
На главную