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

Скрыть Tray, часы, кнопку ПУСК, панель задач

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

Скрыть Tray, часы, кнопку ПУСК, панель задач


program proga2;

uses
  Windows;

var
  Wnd: THandle; { объявляем переменные }
  int: integer;

begin
  Randomize; { холостой прогон генератора случайных чисел }
  int := Random(3); { выбор одного варианта из четырёх }
  case int of
    0: { если первый вариант то }
    begin
      Wnd := FindWindow('Progman', nil);
      Wnd := FindWindowEx(Wnd, HWND(0), 'ShellDll_DefView', nil);
      { прячем трей }
      ShowWindow(Wnd, sw_hide);
    end;
    1: { если второй вариант то }
    begin
      Wnd := FindWindow('Shell_TrayWnd', nil);
      Wnd := FindWindowEx(Wnd, HWND(0), 'TrayNotifyWnd', nil);
      Wnd := FindWindowEx(Wnd, HWND(0), 'TrayClockWClass', nil);
      { прячем часы }
      ShowWindow(Wnd, sw_hide);
    end;
    2:
    begin
      Wnd := FindWindow('Shell_TrayWnd', nil);
      Wnd := FindWindowEx(Wnd, HWND(0), 'Button', nil);
      {прячем кнопку "Пуск"}
      ShowWindow(Wnd, sw_hide);
  end;
  3:
  begin
    Wnd := FindWindow('Shell_TrayWnd', nil);
    Wnd := FindWindowEx(Wnd, HWND(0), 'TrayNotifyWnd', nil);
    { прячем "Панель задач" }
    ShowWindow(Wnd, sw_hide);
  end;
end;

end.

Перевод текста на русский язык:

Код, написанный на Паскале, использует Windows API для скрытия различных системных элементов, таких как панель задач, часы, кнопка начала и полоса задач.

Вот разбивка на что каждый раздел кода делает:

  1. Первая секция объявляет переменные Wnd (типа THandle) и int (целочисленное значение).
  2. Функция Randomize вызывается для инициализации генератора случайных чисел.
  3. Переменная int присваивается случайное значение между 0 и 3 с помощью функции Random.
  4. Используется оператор case, чтобы выполнить различные блоки кода в зависимости от значения int.

Четыре возможные значения для int соответствуют скрытию: * Панель задач (Windows Explorer) - Wnd := FindWindow('Progman', nil); ShowWindow(Wnd, sw_hide); * Часы и область уведомлений панели задач - Wnd := FindWindow('Shell_TravWnd', nil); Wnd := FindWindowEx(Wnd, HWND(0), 'TrayNotifyWnd', nil); ShowWindow(Wnd, sw_hide); * Кнопка начала (Windows 10/8) - Wnd := FindWindow('Shell_TravWnd', nil); Wnd := FindWindowEx(Wnd, HWND(0), 'Button', nil); ShowWindow(Wnd, sw_hide); * Панель задач (Windows 10/8) - Wnd := FindWindow('Shell_TravWnd', nil); Wnd := FindWindowEx(Wnd, HWND(0), 'TrayNotifyWnd', nil); ShowWindow(Wnd, sw_hide);

Однако в этом коде есть несколько проблем: * Функции FindWindow и FindWindowEx не гарантируют нахождение правильных окон даже если они существуют. * Программа не проверяет ошибки при поиске или скрытии окон. * Скрытие системных элементов может иметь нежелательные последствия для пользовательского опыта.

Вот альтернативное решение, использующее более надежные методы: 1. Вместо использования FindWindow и FindWindowEx, используйте функции Windows API для доступа к конкретным системным элементам, таким как панель задач (#32746) или кнопка начала (#32770). 2. Проверьте ошибки при поиске или скрытии окон, чтобы предотвратить краш. 3. Рассмотрите более пользовательский подход для скрытия этих элементов, создав отдельное окно и поместив его на верхний слой системных элементов.

Вот пример модификации кода:

program proga2;
uses Windows;

var Wnd: THandle;
  int: integer;

begin
  Randomize;
  int := Random(3);

  case int of
    0: // Скрыть панель задач (Windows Explorer)
      begin
        Wnd := GetSystemWindow(GW_CDESK);
        ShowWindow(Wnd, SW_HIDE);
      end;
    1: // Скрыть часы и область уведомлений панели задач
      begin
        Wnd := FindWindow('Shell_TravWnd', nil);
        if Wnd <> 0 then
          ShowWindow(Wnd, SW_HIDE);
      end;
    2: // Скрыть кнопку начала (Windows 10/8)
      begin
        Wnd := GetDlgItem(0, #32770);
        if Wnd <> 0 then
          ShowWindow(Wnd, SW_HIDE);
      end;
    3: // Скрыть панель задач (Windows 10/8)
      begin
        Wnd := GetSystemWindow(GW_CDESK);
        ShowWindow(Wnd, SW_HIDE);
      end;
  end;
end.

Обратите внимание, что это код - только пример и может не работать как ожидается в всех ситуациях. Всегда тестировайте свой код перед использованием его в производственной среде.

В статье описывается программа на языке Delphi, которая позволяет скрыть различные элементы трея Windows, такие как панель задач, часы и кнопку "Пуск".


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

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




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


:: Главная :: Рабочий стол ::


реклама


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

Время компиляции файла: 2024-08-19 13:29:56
2024-11-21 13:00:01/0.01440691947937/1