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

Как заставить Рабочий Стол обновится

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

Как заставить Рабочий Стол обновится


procedure TForm1.Button1Click(Sender: TObject);
begin
  SendMessage(FindWindow('Progman', 'Program Manager'),
  WM_COMMAND, $A065, 0);
end;

Программисты! Классическая "Refresh Desktop" трюк!

В этом коде вы используете функцию SendMessage для отправки сообщения в окно "Программный менеджер" (также известное как Эксплорер). Сообщение - это WM_COMMAND с параметром wNotifyCode, установленным в $A065, что является идентификатором команды для действия "Обновить рабочий стол".

Вот, что происходит:

  1. FindWindow('Progman', 'Программный менеджер'): Эта функция находит окно с именем класса 'Progman' и заголовком 'Программный менеджер'. В этом случае, вероятно, это относится к процессу Эксплорера.
  2. SendMessage(...): Отправляет сообщение, указанное в параметре wMsg (WM_COMMAND), в найденное окно.
  3. $A065: Идентификатор команды для "Обновить рабочий стол".
  4. 0: Нижняя часть параметра lParam не используется в этом случае.

Когда вы запустите этот код, он отправит сообщение "Обновить рабочий стол" Эксплореру, что должно обновить рабочий стол и обновить любые открытые папки или окна.

Обратите внимание, что это подход может иметь некоторые ограничения:

  • Он работает только если окно Программного менеджера уже запущено.
  • Он может не работать, если есть другие окна, покрывающие окно Программного менеджера, или если оно миниализировано.
  • Этот код специфичен для Windows XP и более ранних версий. В новых версиях Windows (например, Vista, 7) классное имя "Программный менеджер" было отменено.

Если вы ищете более надежную решение, работающее на различных версиях Windows, рассмотрите использование функции SHRefreshDesktop из Shell API вместо:

uses
  ShellAPI;

procedure TForm1.Button1Click(Sender: TObject);
begin
  SHRefreshDesktop;
end;

Функция SHRefreshDesktop является частью Shell API и предназначена для обновления рабочего стола. Она более надежна и гибкая, чем подход с использованием SendMessage, но требует включения модуля Shell API в ваш проект.

Статья описывает способ обновления Рабочего Стола в Windows, который заключается в отправке специального сообщения оконному процессору "Progman" с помощью функции SendMessage.


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

Получайте свежие новости и обновления по 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 12:56:13/0.0055000782012939/1