如何制作更改计算机壁纸的批处理文件

时间:2014-03-12 00:58:05

标签: batch-file exe wallpaper

我想创建一个批处理文件,稍后将其转换为exe,一打开它就会更改我的计算机的壁纸。对不起,我不知道怎么做D:

1 个答案:

答案 0 :(得分:2)

这个问题的通常答案是

reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d  "c:\somewhere\something.bmp" /f

在注册表中设置已填写的条目,然后是

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

通知系统更改。

但是,从Windows Vista这种方法不起作用。或者至少不是按预期的。注册表的更改将适用于新登录。立即改变壁纸的唯一有效方法是使用windows api。

对于powershell解决方案,您可以找到解决方案here

如果您有权访问C编译器,则此代码应该执行相同的操作(使用mingw-gcc进行测试)

#include <windows.h>
int main(int argc, char **argv)
{
    if (argc < 2) return 1;
    if (! SystemParametersInfo(
            SPI_SETDESKWALLPAPER, 
            0, 
            argv[1],  
            SPIF_UPDATEINIFILE | SPIF_SENDWININICHANGE 
        )) return 2;
    return 0;
}