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-Key: 63845

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

Printed on: April 26, 2024 at 02:04 o'clock

Member: bastla
bastla Jul 15, 2007 at 14:30:39 (UTC)
Goto Top
Member: bastla
bastla Jul 15, 2007 at 15:41:16 (UTC)
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]
Mitglied: 50496
50496 Jul 15, 2007 at 16:03:45 (UTC)
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 
Member: bastla
bastla Jul 15, 2007 at 17:54:01 (UTC)
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
Mitglied: 50496
50496 Jul 15, 2007 at 18:21:37 (UTC)
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
Member: bastla
bastla Jul 15, 2007 at 18:29:42 (UTC)
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
Mitglied: 50496
50496 Jul 15, 2007 at 18:31:58 (UTC)
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.
Member: bastla
bastla Jul 15, 2007 at 18:33:49 (UTC)
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]
Mitglied: 50496
50496 Jul 15, 2007 at 19:36:38 (UTC)
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.
Member: bastla
bastla Jul 15, 2007 at 19:38:17 (UTC)
Goto Top
Ich hab sie bis jetzt auch nicht gefunden, daher die "Umwege" ...

Grüße
bastla
Member: Thommes
Thommes Jul 19, 2007 at 21:25:32 (UTC)
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