15 мая 2023 года "Исходники.РУ" отмечают своё 23-летие!
Поздравляем всех причастных и неравнодушных с этим событием!
И огромное спасибо всем, кто был и остаётся с нами все эти годы!

Главная Форум Журнал Wiki DRKB Discuz!ML Помощь проекту


Как обновить рабочий стол (Desktop)

Компилятор: Delphi

Способ 1:

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

 

Способ 2:

procedure RefreshDesktop;
var
  hDesktop: HWND;
begin
  hDesktop := FindWindowEx(FindWindowEx(
        FindWindow('Progman', 'Program Manager'), 0,
        'SHELLDLL_DefView', ''), 0, 'SysListView32', '');
  PostMessage(hDesktop, WM_KEYDOWN, VK_F5, 0);
  PostMessage(hDesktop, WM_KEYUP, VK_F5, 1 shl 31);
end;