Navanem projectC#

Sysinfo Tool

A lightweight BGInfo-style Windows utility that generates a polished system information panel and applies it as the desktop wallpaper.

ShareLinkedInX
1Stars
0Forks
0Open issues
ActiveStatus

Built in the open.

A lightweight BGInfo-style Windows utility that generates a polished system information panel and applies it as the desktop wallpaper.

From the repository.

BgLight

BgLight is a lightweight BGInfo-like tool for Windows: it draws a "premium" system information panel on a solid background and applies it automatically as the desktop wallpaper. It is a one-shot executable (it runs, updates the wallpaper, then exits immediately), silent, with no UI and no external dependency (.NET Framework 4.8, shipped by default on Windows 10/11).

BgLight panel preview

Preview rendered with placeholder data. On a real machine the values come from the system (WMI + .NET APIs).


Table of contents


Features

  • "Premium" panel: translucent dark card with rounded, anti-aliased corners.
  • Configurable position (defaults to the top-right corner).
  • Header = computer name, in bold, underlined by an accent line whose color is configurable (/accentColor, default blue #0078D4).
  • Two aligned columns (label / value) for clean readability.
  • Panel footer: made by navanem.com + version number.
  • Grouped sections (System / Hardware / Network / Storage / Security).
  • Optional background image (/bgImage), the panel is drawn over it; falls back to the solid color.
  • Multi-monitor: one panel per monitor across the whole virtual desktop.
  • DPI-aware (PerMonitorV2) with pixel-accurate Span wallpaper.
  • Panel drop shadow + border.
  • Robust: every information source is isolated; if a query fails, the value shows N/A instead of crashing the tool.
  • Lightweight and non-resident: no service, no background process; the exe exits as soon as the update is done.

Displayed information

SectionFields
SystemUser · OS · Uptime · Battery (laptops) · Generated
HardwareManufacturer · Model · Processor · Serial No. · Asset tag · RAM
NetworkDomain · FQDN · IPv4 · MAC · DHCP · DNS
StorageFree / total for every fixed disk
SecurityBitLocker · Windows activation · Antivirus

Sizes are shown in GB (gibibytes, base 1024). Security fields require elevation and otherwise show N/A.

Requirements

  • Runtime: Windows 10/11. .NET Framework 4.8 is preinstalled on those versions.
  • Build: the .NET SDK is enough (see Building from source); Visual Studio 2022 also works.

Quick install (binary)

  1. Download BgLight-vX.Y.Z.exe from the Releases page.
  2. (Optional) place it in %ProgramData%\BgLight\.
  3. Run it once to check the rendering, then schedule it (see Deployment).

Usage

Defaults (panel in the top-right corner, blue accent):

BgLight.exe

With arguments:

BgLight.exe /position=TopRight /accentColor=#0078D4 /fontSize=11 /fontName="Segoe UI"

Command-line options

Arguments use the /key=value form (case-insensitive). An invalid value is ignored and the default is kept.

ArgumentDefaultDescription
/outputPathC:\ProgramData\BgLight\wallpaper_info.bmpPath of the generated BMP (and of log.txt)
/bgImage(none)Background image drawn full-screen behind the panel; falls back to /bgColor
/positionTopRightTopLeft, TopRight, BottomLeft, BottomRight
/accentColor#0078D4Accent line color (hex #RRGGBB)
/bgColor#202020Solid background color (hex)
/fontSize11Body font size (points); the title is slightly larger
/fontNameSegoe UIText font

The error log (log.txt) is created in the outputPath folder.

Enterprise deployment

Scheduled task (recommended for periodic refresh)

schtasks /create /tn "BgLight"         /tr "%ProgramData%\BgLight\BgLight.exe" /sc onlogon
schtasks /create /tn "BgLight-Refresh" /tr "%ProgramData%\BgLight\BgLight.exe" /sc minute /mo 30
  • onlogon: at every sign-in.
  • /sc minute /mo 30: refresh every 30 minutes (useful for RAM/disk/IP).

Logon script (GPO)

  1. Copy BgLight.exe to \\server\share\BgLight\ or %ProgramData%\BgLight\.
  2. GPO → User Configuration > Policies > Windows Settings > Scripts (Logon).
  3. Add deploy\run-bglight.bat.

Building from source

The project targets net48. It references Microsoft.NETFramework.ReferenceAssemblies for build only, which allows building net48 with just the .NET SDK (no targeting pack installed); no dependency is added to the shipped exe.

# Build
dotnet build BgLight.sln -c Release
# -> src/BgLight/bin/Release/net48/BgLight.exe

# Tests
dotnet test -c Debug

With Visual Studio: open BgLight.sln, select the Release configuration, build the solution.

How it works

A one-shot pipeline runs on every launch:

  1. AppConfig.Parse, reads the /key=value arguments and applies defaults.
  2. SystemInfoCollector.Collect, gathers system info (WMI + .NET APIs), each source isolated in its own try/catch (no exception ever escapes).
  3. WallpaperRenderer.Render, draws the panel (GDI+) on a full-screen bitmap and saves it as a BMP.
  4. WallpaperSetter.Apply, applies the BMP as the wallpaper via SystemParametersInfo.

Source layout:

FileResponsibility
Program.csOne-shot orchestration + root error handling
AppConfig.csArgument parsing and defaults
SystemInfoCollector.csSystem information collection
SystemInfoData.csData model (title + label/value rows)
Format.csFormatting (GB sizes, joins)
WallpaperRenderer.csGDI+ rendering of the panel
WallpaperSetter.csWallpaper application (P/Invoke)
Logger.csError logging

Troubleshooting

  • Wallpaper does not change / log.txt reports access denied: choose a writable outputPath (e.g. a folder under %LOCALAPPDATA%), or run with sufficient rights on %ProgramData%.
  • A "forced wallpaper" GPO policy is active: it can override the wallpaper. Disable the policy or deploy the BMP through that same policy.
  • N/A values: the corresponding WMI query failed (permissions, driver, corrupted WMI); the other fields stay populated.

Versions

See CHANGELOG.md and the Releases page.


made by navanem.com

Why it exists.

The code is public and the scope stays focused. Read the README, open an issue, or send a pull request if you have an idea.