How to make a batch file that changes the wallpaper of a computer

守給你的承諾、 提交于 2019-11-26 23:41:26

问题


I want to create a batch file that is later going to be converted to an exe that changes the wallpaper of my computer as soon as I open it. Sorry I have no idea how to do this D:


回答1:


The usual answer to this question is

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

to set the adecuated entry in the registry, followed by

RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

to inform the system of the changes.

BUT, from windows Vista this approach does not work. Or at least not as intended. The changes to the registry will apply on new logon. The only robust way to get the wallpaper changed instantly is to use the windows api.

For a powershell solution, you can find a solution here

If you have access to a C compiler, this code should do the same (tested with 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;
}


来源:https://stackoverflow.com/questions/22339883/how-to-make-a-batch-file-that-changes-the-wallpaper-of-a-computer

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!