• Что бы вступить в ряды "Принятый кодер" Вам нужно:
    Написать 10 полезных сообщений или тем и Получить 10 симпатий.
    Для того кто не хочет терять время,может пожертвовать средства для поддержки сервеса, и вступить в ряды VIP на месяц, дополнительная информация в лс.

  • Пользаватели которые будут спамить, уходят в бан без предупреждения. Спам сообщения определяется администрацией и модератором.

  • Гость, Что бы Вы хотели увидеть на нашем Форуме? Изложить свои идеи и пожелания по улучшению форума Вы можете поделиться с нами здесь. ----> Перейдите сюда
  • Все пользователи не прошедшие проверку электронной почты будут заблокированы. Все вопросы с разблокировкой обращайтесь по адресу электронной почте : info@guardianelinks.com . Не пришло сообщение о проверке или о сбросе также сообщите нам.

Как Заставить Рабочий Стол Windows Обновится?

Sascha Оффлайн

Sascha

Заместитель Администратора
Команда форума
Администратор
Регистрация
9 Май 2015
Сообщения
1,227
Баллы
155
Как заставить рабочий стол 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;
 
Вверх Снизу