pommesrotweiss
Goto Top

Hintergrundbild automatisch tauschen

Hallo,

ich suche eine Moeglichkeit ein Hintergrundbild alle x Minuten oder bei jeder Anmeldung automatisch aendern zu lassen.

Ich habe hier eine Sammlung von ein paar hundert hochwaertigen Hintergrundbildern als JPEG...

Hierzu habe ich bereits diverse Shareware gefunden, jedoch muss dies doch u.a. auch per Script oder so gehen...

Hat einer von euch evtl. eine Idee?

Merci & Gruss,

pommesrotweiss

Content-ID: 63845

Url: https://administrator.de/contentid/63845

Ausgedruckt am: 14.11.2024 um 07:11 Uhr

bastla
bastla 15.07.2007 um 16:30:39 Uhr
Goto Top
bastla
bastla 15.07.2007 um 17:41:16 Uhr
Goto Top
... als Ergänzung zum 2. Link: Der "SendKeys"-Block müsste für ein deutsches Windows (Paint) so aussehen:
objShell.SendKeys "%du"  
objShell.SendKeys strWallPath
objShell.SendKeys "{TAB}"  
objShell.SendKeys "22"  
objShell.SendKeys "%s"  
Wscript.Sleep 500
objShell.SendKeys "j"  

Eleganter, aber dann eben nicht mehr mit "Bordmitteln", lässt sich die Konvertierung zB mit PictView32 Console version durchführen - dann genügt eine Zeile der Art
WshShell.Run "C:\Utils\pvw32con " & Chr(34) & strSrcPic & Chr(34) & " -w --o " & Chr(34) & strWallPath & Chr(34), 0, false  

Grüße
bastla

[Edit] Variante mit "PictView32" ergänzt. [/Edit]
50496
50496 15.07.2007 um 18:03:45 Uhr
Goto Top
Als Beispiel eine Batchdatei hintergrund.cmd:

reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "%windir%\Web\Wallpaper\Bltentraum.bmp" /F  
reg add "HKCU\Control Panel\Desktop" /v ConvertedWallpaper /t REG_SZ /d "%windir%\Web\Wallpaper\Bltentraum.jpg" /F  
%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters

.JPG werden von Windows umgewandelt nach %userprofile%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Wallpaper1.bmp
In den o. a. Registryschlüsseln findet man die damit erzeugten Einträge. Das heißt, man muss die vorher selbst umwandeln.

Die Orginal-JPG ist im Wert "ConvertedWallpaper" eingetragen, die konvertierte Wallpaper1.bmp im Wert "Wallpaper".

Ausprobiert mit geänderten Pfaden und dem "Blütentraum". Ü in der .CMD muss umgesetzt werden auf 
bastla
bastla 15.07.2007 um 19:54:01 Uhr
Goto Top
Hallo pommesrotweiss und ernstaugust!

Um das Ganze zusammenzufassen: Wenn ausschließlich Batch verwendet werden soll, ist zumindest für die Konvertierung Fremdsoftware nötig. Am Beispiel des oben genannten PictView32 (Annahme: Die "pvw32con.exe" wurde in "C:\Utils" gespeichert) könnte also ein Zufalls-Hintergrundbild-Aktivierungs-Batch so aussehen:
@echo off & setlocal enabledelayedexpansion
set "BasisPfad=%userprofile%\Eigene Dateien\Eigene Bilder"  
set "KonvPfad=%userprofile%\Lokale Einstellungen\Anwendungsdaten\Microsoft\Wallpaper1.bmp"  
for /f %%i in ('dir /w /s "%BasisPfad%\*.bmp" "%BasisPfad%\*.jpg"^|findstr /c:"Datei(en)"') do set /a Anzahl=%%i  
set /a Nr=%Anzahl%*%random%/32768+1
set Datei=
for /f "delims=" %%i in ('dir /b /s "%BasisPfad%\*.bmp" "%BasisPfad%\*.jpg"') do call :ProcessFile "%%i"  
echo Verwende %Datei% ...
if /i "%Datei:~-4%"==".bmp" goto :Eintragen  
C:\Utils\pvw32con "%Datei%" -w --o "%KonvPfad%">nul  
set "Datei=%KonvPfad%"  
:Eintragen
reg add "HKCU\Control Panel\Desktop" /v Wallpaper /t REG_SZ /d "%Datei%" /f  
%windir%\System32\RUNDLL32.EXE user32.dll,UpdatePerUserSystemParameters
goto :eof
:ProcessFile
if defined Datei goto :eof
set /a Nr-=1
if %Nr% gtr 0 goto :eof
set "Datei=%~1"  
Bilder werden im angegebenen "BasisPfad" samt Unterverzeichnissen in den Formaten "bmp" und "jpg" gesucht. Sollen sie nur aus einem bestimmten Verzeichnis kommen, einfach bei den beiden "dir"-Befehlen das "/s" entfernen.

Grüße
bastla
50496
50496 15.07.2007 um 20:21:37 Uhr
Goto Top
@bastla

Ich habe ja nur nachvollzogen, was Windows macht, wenn man das Hintergrundbild per Hand über die Desktopeigenschaften ändert, trotzdem danke.

Was mir richtig gut gefällt, ist die RANDOM-Zeile. Darauf muss man erst mal kommen. face-wink
bastla
bastla 15.07.2007 um 20:29:42 Uhr
Goto Top
@50496

Ich wollte es auch erst so nachvollziehen, bin aber vorher schon auf den ersten Link gestoßen und musste es dann nur noch überprüfen ...

Und hinsichtlich %random%: Danke für die Blumen, aber was sagtest Du neulich über blinde Hühner ... face-wink

Grüße
bastla
50496
50496 15.07.2007 um 20:31:58 Uhr
Goto Top
Mit dem ersten Link funktionieren die Jpegs, die Windows zur Verfügung hält, leider nicht. face-smile Die gehen nämlich auch von BMPs aus.

Aber die Konvertierung benötigt man ja im Prinzip nur einmal. IrfanView kann das z. B. im Batchmode in einem Rutsch erledigen.
bastla
bastla 15.07.2007 um 20:33:49 Uhr
Goto Top
... deshalb auch der zweite (allerdings braucht das Script dort etwas Anpassung; vorteilhaft ist dabei eigentlich nur, dass es ganz ohne externe Tools auskommt).

Grüße
bastla

[Edit] Die Konvertierung aller Bilder in "bmp" sollte heutzutage nicht mehr an Platzmangel scheitern, insofern hast Du natürlich Recht. Mit der "on-the-fly"-Konvertierung immer nur des gewünschten Bildes geht's aber auch ganz gut. [/Edit]
50496
50496 15.07.2007 um 21:36:38 Uhr
Goto Top
Die Konvertierung muss eigentlich auch mit Systemmitteln funktionieren, irgendeine Funktion aus shimgvw.dll (Bild- und Faxanzeige), nur welche? face-smile MSPaint benutzt desk.cpl definitiv nicht.
bastla
bastla 15.07.2007 um 21:38:17 Uhr
Goto Top
Ich hab sie bis jetzt auch nicht gefunden, daher die "Umwege" ...

Grüße
bastla
Thommes
Thommes 19.07.2007 um 23:25:32 Uhr
Goto Top
Hallo pommesrotweiss (lecker!),

bin auch neu hier, daher dachte ich, jeden Tag eine gute Tat!

Habe mal grad gegoogelt (hilft) und das Programm direkt getestet. Ist eine tolle Sache:

http://wallpaperchanger.de/

Empfehle die "Beta Area" (links im Menü). Habe die xp-Version getestet.

Gruß
Thommes