1
0 Comments

I am building a custom Windows 10 media PC for church that will display a color scheme and background corresponding to the liturgical color for the service. One computer will act as a server and calculate the appropriate color based on the liturgical calendar and any church events.

The goal is to save themes for each color while configuring the system. However, I am having difficulty finding an automated way to change the entire theme (not just the background) on login and periodically throughout the day without requiring administrative privileges.

Since the PC will be used by individuals without significant computer knowledge, it is important to follow best practices and limit the main account to user-level privileges with only a few select administrators from the congregation staff/volunteers.

I have reviewed previous relevant work, but much of it is outdated. The “Location based windows theme” solution only changes the screensaver, while the “Windows Color Scheme (Theme) Program” requires user action and offers more UI customization than desired, which may confuse users.

The “Automatically recognize desktop background image has changed” solution requires administrative privileges and may not be suitable.

To solve this problem, I have developed the following pseudocode:

Sub onUserLogin()
{
    coordinateLiturgicalColor(); ' Check (and set) current color
    bindTimerEvent();            ' Set timer to fire subroutine at x:00 and x:30
}

Sub coordinateLiturgicalColor()
{
    currentColor = currentTheme.name();
    newColor = getColor("https://192.168.1.200/color.php");
    if (currentColor != newColor)
    {
        currentTheme.name = newColor;
        currentTheme.refresh();
    }
}
Askify Moderator Edited question May 4, 2023