Explico el funcionamiento, que es básico. El programa recorre la carpeta actual en busca de archivos de imagen tipo bmp. Si no encuentra ninguno termina, en caso contrario entra en un bucle infinito presentando cada uno como fondo de escritorio. Termina en caso de que se borren todos los archivos bmp de la carpeta.
Comparto con vosotros el código:
delphi
program WPaper2; uses Windows; function strrchr(S: PCHAR; C: CHAR): PCHAR; cdecl; external 'msvcrt.dll'; var CmdLine, C: PCHAR; hFile: THANDLE; fd: WIN32_FIND_DATA; begin CmdLine:= GetCommandLine(); C:= strrchr(CmdLine, '\'); if C <> nil then C^:= #0; SetCurrentDirectory(CmdLine); while true do begin hFile:= FindFirstFile('*.bmp', fd); if hFile <> INVALID_HANDLE_VALUE then repeat SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, @fd.cFileName, SPIF_UPDATEINIFILE or SPIF_SENDCHANGE); Sleep(60000); until not FindNextFile(hFile, fd) else break; end; FindClose(hFile); SystemParametersInfo (SPI_SETDESKWALLPAPER, 0, nil, SPIF_SENDWININICHANGE); end.
Saludos.