- Registriert
- 30 März 2024
- Beiträge
- 147
Ein Powershell script (SWC.ps1) das per Zufall ein Bild aus dem Ordner Wallpaper auswählt.
Der Ordner kann praktisch überall hinterlegt werden. Das Script muss im Wallpaper Ordner
liegen zusammen mit den möglichen Hintergründen. Das kopiert man dann auf ein Laufwerk.
Aufrufen kann man das auch wieder über einen Link auf dem Desktop, wenn man möchte.
Mit einem Konverter kann man das script auch in eine SWC.exe umwandeln.
Kurz: Desktopbilder in den Ordner Wallpaper zusammen mit dem script kopieren.
Die Bilder einfach durchnummerieren, z.B.: background1.jpg, background2.jpg...
Die Bilder sind 1920 x 1080 mit 24 Bittiefe und sind bis zu ca. 1 MB gross.
Es können auch png und bmp verarbeitet werden.
Bemerkung es funktioniert auch in einer WinPE Umgebung. Auch das ist mit Bordmitteln
gemacht. Das Umschalten dauert ca. 1 Sekunde.
Der Ordner kann praktisch überall hinterlegt werden. Das Script muss im Wallpaper Ordner
liegen zusammen mit den möglichen Hintergründen. Das kopiert man dann auf ein Laufwerk.
Aufrufen kann man das auch wieder über einen Link auf dem Desktop, wenn man möchte.
Mit einem Konverter kann man das script auch in eine SWC.exe umwandeln.
Kurz: Desktopbilder in den Ordner Wallpaper zusammen mit dem script kopieren.
Die Bilder einfach durchnummerieren, z.B.: background1.jpg, background2.jpg...
Die Bilder sind 1920 x 1080 mit 24 Bittiefe und sind bis zu ca. 1 MB gross.
Es können auch png und bmp verarbeitet werden.
Bemerkung es funktioniert auch in einer WinPE Umgebung. Auch das ist mit Bordmitteln
gemacht. Das Umschalten dauert ca. 1 Sekunde.
Code:
$imageExtensions = @("*.jpg", "*.png", "*.bmp", "*.jpeg")
$wallpaperPath = $null
$allImages = foreach ($ext in $imageExtensions) {
Get-ChildItem -Path $PSScriptRoot -Filter $ext -File -ErrorAction SilentlyContinue
}
if ($allImages.Count -gt 0) {
$wallpaperPath = (Get-Random -InputObject $allImages).FullName
# Setze das Wallpaper in der Registry
Set-ItemProperty -Path "HKCU:\Control Panel\Desktop" -Name Wallpaper -Value $wallpaperPath
# Aktualisiere das Wallpaper sofort
Add-Type @'
using System.Runtime.InteropServices;
public class NativeMethods {
[DllImport("user32.dll", SetLastError = true)]
public static extern bool SystemParametersInfo(int uAction, int uParam, string lpvParam, int fuWinIni);
}
'@
[NativeMethods]::SystemParametersInfo(20, 0, $wallpaperPath, 3)
}
Zuletzt bearbeitet:






