Thread Wallpaper Wechsel
(24 answers)
Opened by jeans at 2009-08-09 17:23
Ich habe zwar keine Windows, aber ich würde einen etwas anderen Ansatz wählen:
Code (perl): (dl
)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 #!/usr/bin/perl use strict; use warnings; # Use the Windows Registry Win32::Registry; # Dir of all useable Wallpapapers my $base_dir = 'C:\Dokumente und Einstellungen\Ricco\Lokale Einstellungen\Anwendungsdaten\Microsoft\Wallpaper\\'; # get the actual Wallpaper from Registry my $filename=$HKEY_CURRENT_USER->Open('Control Panel\Desktop')->GetValue('Wallpaper'); # Get all wallpapers in dir my @files=sort glob("${base_dir}*.*"); # find next wallpaper my $pos=0; # last if the actual walpaper is found in list while($pos<@files) { last if ($filename eq $files[$pos]); $pos++; } # at end of list begin at start. $pos=-1 if($pos>=$#files) # get the next wallpaper in list $pos++; $filename=$files[$pos]; # set the path in registry my $type=$HKEY_CURRENT_USER->Open('Control Panel\Desktop')->GetType('Wallpaper'); my $filename=$HKEY_CURRENT_USER->Open('Control Panel\Desktop')->SetValue('Wallpaper',$type,$filename); Die Idee ist den Wert direkt in der WinRegistry zu ändern, anstatt die Datei zu ersetzen. Das hat gleich mehrere Vorteile: -Der Wechsel ist schneller. -Es muss keine Datei ersetzt werden. -Das System bekommt sofort mit, dass der Hintergrund sich geändert hat. -Der Dateityp bleibt korrekt (jpeg != bmp != gif etc.) -Man wechselt tatsächlich immer zum nächsten Bild Aber wie schon gesagt, ich habe es nicht getestet. Das müssen dir andere helfen, die Windows verwenden. Edit: Code Zeile 12 ";" und Zeile 22 ")" Edit2: Fehlerhaftes quote in Zeile 9 beseitigt. Last edited: 2009-08-10 16:47:07 +0200 (CEST) |