当我使用VBS脚本更改壁纸时,我必须注销更改才能生效。我怎样才能这样做,所以一旦运行我的脚本,我就不必注销了?
我正在运行Windows 7并且正在运行代码,该代码将采用给定的路径文件,例如 a.jpg 或 a.bmp ,并替换该文件位置:
C:\用户\布拉德\应用程序数据\漫游\微软\的Windows \主题\ TranscodedWallpaper.jpg 的
我列出了我找到的VBS文件的代码,它应该刷新我的活动桌面。它像脚本一样闪烁,但它不会更新我的壁纸:
' Create explorer command file to toggle desktop window
Set oFSO = CreateObject("Scripting.FileSystemObject")
sSCFFile= oFSO.BuildPath(oFSO.GetSpecialFolder(2), oFSO.GetTempName &".scf")
With oFSO.CreateTextFile(sSCFFile, True)
.WriteLine("[Shell]")
.WriteLine("Command=2")
.WriteLine("[Taskbar]")
.WriteLine("Command=ToggleDesktop")
.Close
End With
' Toggle desktop and send F5 (refresh)
With CreateObject("WScript.Shell")
.Run """" & sSCFFile & """"
WScript.Sleep 100
.Sendkeys "{F5}"
End With
' Delete explorer command file
oFSO.DeleteFile sSCFFile
答案 0 :(得分:1)
设置存储在内存中。更改注册表项不会改变任何内容。
程序执行的方式是使用SystemParametersInfo
SystemParametersInfo
检索或设置其中一个系统范围参数的值。此功能还可以在设置参数时更新用户配置文件。
BOOL SystemParametersInfo(
UINT uiAction,
UINT uiParam,
PVOID pvParam,
UINT fWinIni
);
SPI_SETDESKWALLPAPER
设置桌面墙纸。 pvParam参数的值确定新壁纸。要指定壁纸位图,请将pvParam设置为指向包含位图文件名称的以空字符结尾的字符串。将pvParam设置为“”会删除壁纸。将pvParam设置为SETWALLPAPER_DEFAULT或NULL将恢复为默认壁纸。
VB.Net安装了所有计算机。请改用它。
答案 1 :(得分:0)
我做了一点搜索,发现了一个.bat文件的代码块,如下所示:
> @echo off
> taskkill /f /IM explorer.exe
> Start explorer.exe
> @pause
这解决了我的问题,因为在explorer.exe启动时加载了后台。