Delphi-Help

  • Increase font size
  • Default font size
  • Decrease font size
Главная Статьи Windows Как заставить рабочий стол Windows обновится?

Как заставить рабочий стол Windows обновится?

Оцените материал
(1 Голосовать)

Как заставить рабочий стол Windows обновится?

Способ первый

procedure TForm1.Button1Click(Sender: TObject);
var
  Desktop: HWND;
begin
   Desktop := FindWindow( 'Progman', 'Program Manager' );
   Desktop := FindWindowEx( Desktop, 0, 'SHELLDLL_DefView', '' );
   Desktop := FindWindowEx( Desktop, 0, 'SysListView32', '' );
   PostMessage( Desktop, WM_KEYDOWN, VK_F5, 0 );
   PostMessage( Desktop, WM_KEYUP, VK_F5, 1 shl 31 );
end;

Способ второй

uses
   ..., ShlObj, ComObj;
 
procedure TForm1.Button1Click(Sender: TObject);
var
  ActiveDesktop: IActiveDesktop;
begin
   ActiveDesktop := CreateComObject( CLSID_ActiveDesktop ) as IActiveDesktop;
   ActiveDesktop.ApplyChanges( AD_APPLY_ALL or AD_APPLY_FORCE );
end;

Способ третий

uses
   ..., ShlObj;
 
procedure TForm1.Button1Click(Sender: TObject);
begin
   SHChangeNotify( SHCNE_ASSOCCHANGED, SHCNF_IDLIST, nil, nil );
end;
Прочитано 5608 раз

Авторизация



Счетчики