为什么此批处理文件无法更改壁纸(Windows 7)
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了为什么此批处理文件无法更改壁纸(Windows 7)相关的知识,希望对你有一定的参考价值。
我有一个运行(没有错误)的脚本来更改桌面壁纸。唯一的问题是它不会改变壁纸。注册表项已适当更改,以便位工作。只是重装不起作用。
:: Configure Wallpaper
REG ADD "HKCUControl PanelDesktop" /V Wallpaper /T REG_SZ /F /D "C:UsersgreynoldsAppDataRoamingAPOD Wallpaperapod_wallpaper1.png"
REG ADD "HKCUControl PanelDesktop" /V WallpaperStyle /T REG_SZ /F /D 0
REG ADD "HKCUControl PanelDesktop" /V TileWallpaper /T REG_SZ /F /D 2
:: Make the changes effective immediately
%SystemRoot%System32RUNDLL32.EXE user32.dll, UpdatePerUserSystemParameters
UpdatePerUserSystemParameters是一个未记录的函数AFAIK
ReactOS defines it as:BOOL WINAPI UpdatePerUserSystemParameters(DWORD dwReserved,BOOL Enable)
That function definition means that it is not a function you can call with RunDll32(你最终将随机参数传递给函数)
在撰写本文时(根据我的经验),更频繁地设置HKCUControl PanelDesktop
是行不通的。
最好的解决方案是调用win32 api函数SystemParametersInfoSetWallpaper
- 它每次都有效。我发现这个powershell模块/片段是非常有用的https://gallery.technet.microsoft.com/scriptcenter/Change-window-borderdesktop-609a6fb2
这里你如何调用这个函数,但更好地使用记录的API:
RUNDLL32.EXE USER32.DLL,UpdatePerUserSystemParameters 1 True
以上是关于为什么此批处理文件无法更改壁纸(Windows 7)的主要内容,如果未能解决你的问题,请参考以下文章
使用 Win32/C++ API 更改 Windows 7 壁纸(操作未实现异常)
提示此windows副本不是正版的win7系统7601解决方法