VBScript для обновления рабочего стола в Wix или MSI - PullRequest
2 голосов
/ 11 ноября 2010

Мой установщик создает ключ reg в папке HKLM \ Software \ Microsoft \ Windows \ CurrentVersion \ Explorer \ Desktop \ NameSpace, который создает значок на рабочем столе во время установки, но после удаления этот значок остается до тех пор, пока я не нажму F5. Итак, я погуглил и нашел его из здесь , поэтому я добавил:

<CustomAction Id="CA_RefreshDesktopVB" Script="vbscript">
<![CDATA[
    Set WSHShell = CreateObject("WScript.Shell") 
    strDesktop = WSHShell.SpecialFolders("Desktop") 
    WSHShell.AppActivate strDesktop
    WSHShell.SendKeys "{F5}"
]]>
</CustomAction>

<InstallExecuteSequence>
...
<Custom Action="CA_RefreshDesktopVB" OnExit="success"/>

Тем не менее, он не обновлялся после завершения удаления. Я сделал что-то не так или это просто за пределами VB Script?

1 Ответ

1 голос
/ 01 июня 2011

AppActivate принимает в качестве параметра заголовок окна или идентификатор процесса приложения (но не путь к папке!).В случае рабочего стола Windows заголовок окна, как сообщает Spy ++, называется «Диспетчер программ» (по крайней мере, в моей английской Vista).Измените ваш скрипт на следующий и посмотрите, работает ли он:

Set WSHShell = CreateObject("WScript.Shell")
WSHShell.AppActivate "Program Manager"
WSHShell.SendKeys "{F5}"
...