обновить рабочий стол с помощью пакета - PullRequest
6 голосов
/ 09 февраля 2011

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

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

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

Set WSHShell = CreateObject("WScript.Shell")

WshShell.SendKeys "{F5}"

thx-

Ответы [ 5 ]

6 голосов
/ 09 февраля 2011

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

rundll32 user32.dll,UpdatePerUserSystemParameters  

Или это:

ie4uinit.exe -ClearIconCache

Это, однако, зависит от версии.

3 голосов
/ 13 августа 2014

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


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

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

AHK (AutoHotKey)

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)
2 голосов
/ 15 августа 2017
@echo off
setlocal EnableExtensions DisableDelayedExpansion
ie4uinit.exe -show
endlocal
1 голос
/ 29 мая 2013

Попробуйте это

     @echo off
     taskkill /fi "imagename eq explorer.exe" /f
     CD /d %userprofile%\AppData\Local
     DEL IconCache.db /a
     START explorer.exe
1 голос
/ 09 февраля 2011

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

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

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

EDIT

Это работает на XP. Я не пробовал это на Vista или 7.

...