batch file - para - Cómo hacer un archivo por lotes que cambie el fondo de pantalla de una computadora
echo off bat (1)
La respuesta habitual a esta pregunta es
reg add "HKCU/Control Panel/Desktop" /v Wallpaper /t REG_SZ /d "c:/somewhere/something.bmp" /f
establecer la entrada adecuada en el registro, seguido de
RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
para informar al sistema de los cambios.
PERO , desde Windows Vista, este enfoque no funciona. O al menos no como se pretendía. Los cambios en el registro se aplicarán en el nuevo inicio de sesión. La única forma robusta de cambiar el fondo de pantalla al instante es usar la API de Windows.
Para una solución Powershell, puede encontrar una solución aquí
Si tiene acceso a un compilador de C, este código debería hacer lo mismo (probado con 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;
}
Quiero crear un archivo de proceso por lotes que luego se convertirá en un archivo ejecutable que cambiará el fondo de pantalla de mi computadora tan pronto como lo abra. Lo siento, no tengo idea de cómo hacer esto D: