Карта сайта Kansoftware
НОВОСТИУСЛУГИРЕШЕНИЯКОНТАКТЫ
KANSoftWare

Определение координат расположения TaskBar

Delphi , Рабочий стол , TaskBar

Определение координат расположения TaskBar

Чем мы Винду сильнее любим, тем дольше грузится она.

Пример позволяет узнать координаты расположения панели задач.


uses .., ShellApi;

var
  AppBarData  : TAppBarData;
  bAlwaysOnTop: Boolean; {Поверх окон}
  bAutoHide   : boolean; {Авт. убирать с экрана}
  ClRect      : TRect;   {Клиентские области}
  Rect        : TRect;
  Edge        : UInt;    {Местоположение TaskBar}

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.rc);
  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;

Программный код на Delphi, который обнаруживает координаты панели задач (TaskBar) в системе Windows. Панель задач - это компонент операционной системы Windows, отображающий иконки и уведомления.

Код определяет несколько переменных:

  • AppBarData: экземпляр типа TAppBarData, представляющий AppBar (окно, которое может быть прикреплено к краю экрана).
  • bAlwaysOnTop: логическое значение, указывающее, является ли панель задач всегда на переднем плане других окон.
  • bAutoHide: логическое значение, указывающее, скрывается ли панель задач при неиспользовании.
  • ClRect и Rect: два экземпляра типа TRect, представляющие прямоугольники (регионы с шириной и высотой).
  • Edge: неотрицательное целое значение, представляющее край экрана, на котором находится панель задач.

Код определяет процедуру DetectTaskBar, которая выполняет следующие шаги:

  1. Он находит handle окна панели задач с помощью функции FindWindow, поиска окна с заголовком "Shell_TrayWnd".
  2. Он устанавливает размер структуры AppBarData в размер собственного типа (sizeof(AppBarData)).
  3. Он использует функцию SHAppBarMessage для получения состояния панели задач (например, является ли она всегда на переднем плане или скрывается при неиспользовании). Результат хранится в переменных bAlwaysOnTop и bAutoHide.
  4. Он получает клиентский прямоугольник (область внутри окна) панели задач с помощью функции GetClientRect, и хранит его в ClRect.
  5. Он получает прямоугольник окна (весь экран, включая рамки) панели задач с помощью функции GetWindowRect, и хранит его в Rect.
  6. Он проверяет верхний, нижний, правый или левый край прямоугольника панели задач против высоты и ширины экрана для определения края экрана, на котором находится панель задач. Результат хранится в переменной Edge.

Возможные значения для Edge:

  • ABE_BOTTOM: панель задач находится внизу экрана.
  • ABE_TOP: панель задач находится сверху экрана.
  • ABE_LEFT: панель задач находится слева от экрана.
  • ABE_RIGHT: панель задач находится справа от экрана.

Код не указывает явно, что делать с этими координатами, но одним из возможных использований может быть позиционирование окна или контроля вблизи или рядом с панелью задач.

Определение координат расположения TaskBar в Windows через использование функций ShellApi и получение информации о состоянии TaskBar.


Комментарии и вопросы

Получайте свежие новости и обновления по Object Pascal, Delphi и Lazarus прямо в свой смартфон. Подпишитесь на наш Telegram-канал delphi_kansoftware и будьте в курсе последних тенденций в разработке под Linux, Windows, Android и iOS




Материалы статей собраны из открытых источников, владелец сайта не претендует на авторство. Там где авторство установить не удалось, материал подаётся без имени автора. В случае если Вы считаете, что Ваши права нарушены, пожалуйста, свяжитесь с владельцем сайта.


:: Главная :: TaskBar ::


реклама


©KANSoftWare (разработка программного обеспечения, создание программ, создание интерактивных сайтов), 2007
Top.Mail.Ru

Время компиляции файла: 2024-12-22 20:14:06
2025-07-02 03:57:24/0.0034701824188232/0