обновить рабочий стол с помощью пакета

Мне нужно обновить рабочий стол с помощью пакета, это возможно?

Я нашел следующий VBscript, который обновляет содержащее окно, однако рабочий стол необходимо обновить, а не содержащее окно

в любом случае вокруг этого?

Set WSHShell = CreateObject("WScript.Shell")

WshShell.SendKeys "{F5}"

Спасибо-


person philip    schedule 09.02.2011    source источник


Ответы (4)


Вы можете попробовать это:

rundll32 user32.dll,UpdatePerUserSystemParameters  

Или это:

ie4uinit.exe -ClearIconCache

Однако это зависит от версии.

person Dr. belisarius    schedule 09.02.2011
comment
Хорошо зависит от версии? У нас есть несколько версий, таких как Vista, 98, XP и ME, хотя все они являются домашними ПК (ни одна не работает на 64-разрядной версии). - person philip; 09.02.2011
comment
На Хр работает (по крайней мере у меня)...остальное нет возможности проверить. Попытайся :). И прочитайте мой комментарий под вашим вопросом, пожалуйста. - person Dr. belisarius; 09.02.2011

В Win7 это можно сделать, вызвав функцию "SHChangeNotify" из " shell32.dll". Проблема в том, что, насколько мне известно, эта функция не может быть успешно загружена с помощью «rundll32.exe», поэтому вместо этого используйте программу, которая может это сделать.


Скомпилированный EXE

Используйте инструмент обновления интерфейса командной строки с веб-сайта sepago (32/ 64-битные изображения доступны для скачивания)

AHK (автогорячая клавиша)

DllCall("Shell32\SHChangeNotify", UInt, 0x08000000, UInt, 0, UIntP, 0, UIntP, 0)

AutoIt

DllCall("shell32.dll", "none", "SHChangeNotify", "long", 0x8000000, "uint", BitOR(0x0, 0x1000), "ptr", 0, "ptr", 0)
person NiNiX    schedule 12.08.2014
comment
Кто-нибудь пробовал это с Windows 8.1? Инструмент CLI Refresh ничего не делает. - person guruz; 09.05.2016
comment
Ссылка на инструмент обновления на сайте Sepago не работает. - person ack; 23.09.2018
comment
Dead: в том числе WayBackMachine: страницы тоже нет. Ни в архиве.есть. - person Ray Woodcock; 13.12.2019
comment
Вроде похожее средство. Может быть, это сработает. helgeklein.com/blog/2007/11/< /а> - person ; 27.02.2020
comment
P.S. любой может легко скомпилировать скрипт AHK в exe. - person ; 27.02.2020

Должны ли это быть строго нативные команды?

Если вы можете использовать AutoIt, вы можете использовать следующий скрипт:

WinActivate("Program Manager") 
Send("{F5}")

РЕДАКТИРОВАТЬ

Это работает на XP. На Висте и 7 не пробовал.

person aphoria    schedule 09.02.2011
comment
Гах! И здесь у нас есть причина, по которой Windows вынуждена называть окно рабочего стола Program Manager, даже спустя 15 лет после смерти Windows 3. - person Joey; 14.02.2011
comment
@Joey Джоуи, это немного натянуто. - person aphoria; 14.02.2011

Попробуй это

     @echo off
     taskkill /fi "imagename eq explorer.exe" /f
     CD /d %userprofile%\AppData\Local
     DEL IconCache.db /a
     START explorer.exe
person Metalhead1247    schedule 29.05.2013
comment
“imagename eq explorer.exe” исправлено на "imagename eq explorer.exe" (обратите внимание на ") - person ack; 24.09.2018