Ich habe einen Ordner, in dem 24 Dateien drin sind, 00.jpg, 01.jpg, ... 23.jpg. Diese sind also für von 0 bis 1 Uhr, und so weiter. Über C# wird die Datei dann als Desktophintergrund gesetzt, wie es auch hier beschrieben ist. Mein Code sieht folgendermaßen aus:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Threading;
using System.Runtime.InteropServices;
namespace TimeDependantBg
{
class Program
{
[DllImport("user32.dll")]
private static extern Int32 SystemParametersInfo(UInt32 uiAction, UInt32 uiParam, String pvParam, UInt32 fWinIni);
private static UInt32 SPI_SETDESKWALLPAPER = 20;
private static UInt32 SPIF_UPDATEINIFILE = 0x1;
static void Main(string[] args)
{
int hour;
string basePath = @"C:\Users\Udo\TimeDependantBg\";
string fileName;
while (true)
{
hour = DateTime.Now.Hour;
fileName = basePath + (hour % 24).ToString("00") + ".jpg";
if (System.IO.File.Exists(fileName))
{
SystemParametersInfo(SPI_SETDESKWALLPAPER, 0, fileName, SPIF_UPDATEINIFILE);
}
object lockObj = new object();
lock (lockObj)
{
Monitor.Wait(lockObj, 100000);// ms, alle 100 Sekunden check
}
}
}
}
}
Danach wird noch eine Verknüpfung in C:\Users\Udo\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup zu TimeDependantBg.exe angelegt, sodass das Prorgamm automatisch beim Systemstart geöffnet wird.
Keine Kommentare:
Kommentar veröffentlichen