Wallpaper Tool: Täglich frische Hintergrundbilder — automatisch

Download, Wechsel, Sammlung — alles per Script. Nie wieder das gleiche Wallpaper.

Python Windows API Unsplash

🚀 Jeden Tag ein neues Wallpaper. Automatisch. Kostenlos.

📞 02406 803 7603 ✉️ info@computerkumpel.de

💰 Warum ein automatisches Wallpaper-Tool?

Der Desktop-Hintergrund ist das meistgesehene Bild am Arbeitsplatz. Abwechslung hält den Kopf frisch — und ein automatischer Wechsler sorgt dafür ohne einen Klick.

🔄
Automatischer Wechsel
Stündlich, täglich oder wöchentlich — konfigurierbarer Rhythmus für neue Hintergrundbilder.
📸
Mehrere Quellen
Lädt von Unsplash, Pexels, Bing und lokalen Ordnern — automatische Skalierung auf Bildschirmgröße.
🏷️
Kategorie-Filter
Nur Natur, nur Architektur, nur abstrakt — filtert nach Themen und Stimmungen.
📚
Sammlung aufbauen
Speichert alle heruntergeladenen Wallpaper — baut über Zeit eine kuratierte Sammlung auf.

⚙️ So funktioniert's

📥
1. Download
Holt hochauflösende Bilder von Unsplash, Pexels oder Bing — mit Kategorie-Filter.
📐
2. Optimieren
Skaliert auf Bildschirmauflösung, optimiert Dateigröße, speichert im Wallpaper-Ordner.
🖥️
3. Setzen
Windows-API-Aufruf setzt das neue Wallpaper — Centered, Fill, Fit oder Stretch.
4. Task Scheduler
Als geplanter Task eingerichtet — läuft automatisch im Hintergrund.

💻 Technische Umsetzung

🐍 Wallpaper Manager

import requests
import ctypes
import os
import random
from pathlib import Path
from PIL import Image

class WallpaperManager:
    def __init__(self, collection_dir: str = "~/Pictures/Wallpapers"):
        self.collection_dir = os.path.expanduser(collection_dir)
        os.makedirs(self.collection_dir, exist_ok=True)
        self.sources = {
            'unsplash': 'https://source.unsplash.com/1920x1080/',
            'pexels': 'https://images.pexels.com/photos/'
        }
    
    def download_random(self, category: str = 'nature') -> str:
        """Lädt ein zufälliges Wallpaper von Unsplash"""
        url = f"{self.sources['unsplash']}?{category}"
        
        response = requests.get(url, allow_redirects=True)
        
        if response.status_code == 200:
            filename = f"wallpaper_{category}_{random.randint(1000,9999)}.jpg"
            filepath = os.path.join(self.collection_dir, filename)
            
            with open(filepath, 'wb') as f:
                f.write(response.content)
            
            # Optimiere für Bildschirm
            self._optimize_for_screen(filepath)
            return filepath
        
        raise Exception(f"Download fehlgeschlagen: {response.status_code}")
    
    def _optimize_for_screen(self, image_path: str) -> None:
        """Skaliert Bild auf Bildschirmgröße"""
        screen_width = ctypes.windll.user32.GetSystemMetrics(0)
        screen_height = ctypes.windll.user32.GetSystemMetrics(1)
        
        img = Image.open(image_path)
        img = img.resize(
            (screen_width, screen_height), 
            Image.LANCZOS
        )
        img.save(image_path, 'JPEG', quality=90, optimize=True)
    
    def set_wallpaper(self, image_path: str, style: str = 'fill') -> bool:
        """Setzt das Windows-Wallpaper"""
        # Windows-API für Wallpaper
        SPI_SETDESKWALLPAPER = 20
        SPIF_UPDATEINIFILE = 0x01
        SPIF_SENDCHANGE = 0x02
        
        # Wandle Pfad in absoluten Windows-Pfad
        abs_path = os.path.abspath(image_path)
        
        result = ctypes.windll.user32.SystemParametersInfoW(
            SPI_SETDESKWALLPAPER,
            0,
            abs_path,
            SPIF_UPDATEINIFILE | SPIF_SENDCHANGE
        )
        
        if result:
            print(f"✓ Wallpaper gesetzt: {os.path.basename(image_path)}")
        
        return result
    
    def get_collection(self) -> list:
        """Listet alle gespeicherten Wallpaper auf"""
        wallpapers = []
        for ext in ('*.jpg', '*.jpeg', '*.png'):
            wallpapers.extend(Path(self.collection_dir).glob(ext))
        return sorted(wallpapers, key=os.path.getmtime, reverse=True)
    
    def set_random_from_collection(self) -> str:
        """Setzt ein zufälliges Wallpaper aus der Sammlung"""
        wallpapers = self.get_collection()
        if not wallpapers:
            return self.download_random()
        
        choice = random.choice(wallpapers)
        self.set_wallpaper(str(choice))
        return str(choice)
    
    def daily_routine(self, categories: list = None) -> str:
        """Tägliche Routine: Download + Setzen"""
        if categories is None:
            categories = ['nature', 'architecture', 'travel', 'textures']
        
        category = random.choice(categories)
        try:
            path = self.download_random(category)
            self.set_wallpaper(path)
            return path
        except Exception as e:
            # Fallback: Setze zufälliges aus Sammlung
            return self.set_random_from_collection()

# Nutzung
manager = WallpaperManager()

# Einmalig: Neues Wallpaper holen und setzen
path = manager.daily_routine(categories=['nature', 'minimal'])
print(f"Neues Wallpaper: {path}")

# Bestehende Sammlung durchsuchen
print(f"{len(manager.get_collection())} Wallpaper in Sammlung")

🪟 Windows Task Scheduler Setup

# PowerShell: Täglichen Wallpaper-Wechsel einrichten
$Action = New-ScheduledTaskAction -Execute "python" `
    -Argument "C:\wallpaper_manager\daily_wallpaper.py"
$Trigger = New-ScheduledTaskTrigger -Daily -At 9am
$Principal = New-ScheduledTaskPrincipal -UserId "SYSTEM" `
    -LogonType ServiceAccount -RunLevel Highest

Register-ScheduledTask -TaskName "Daily Wallpaper" `
    -Action $Action -Trigger $Trigger -Principal $Principal `
    -Description "Wechselt täglich das Desktop-Wallpaper"

⚡ In 1 Tag zum fertigen Wallpaper-Tool.

📞 02406 803 7603 ✉️ info@computerkumpel.de

🚀 Gebaut mit Vibecoding

👴 Klassische Entwicklung
  • 📋 1 Woche WinAPI recherchieren
  • 💻 1–2 Wochen Implementierung
  • 🧪 0.5 Wochen Testing
  • ⏱️ Gesamt: 3 Wochen
🤖 Vibecoding-Ansatz
  • 🗣️ 0.5 Tage Prompt
  • ⚡ 0.5 Tage Code + Test
  • ⏱️ Gesamt: 1 Tag

Frische Wallpaper — automatisiert für Ihr Team?

Mit Firmen-Branding, eigenen Quellen und zentraler Verwaltung. Jetzt unverbindlich anfragen.

📞 02406 803 7603 ✉️ info@computerkumpel.de