This is a taskbar-corner (notification area) .NET 8 WinForms app scaffold for virtual desktop indication.
Implemented:
- Single-instance startup and notification-area icon host.
- Internal COM provider boundary with desktop-change event plumbing.
- Dynamic desktop number rendering in the corner icon.
- Per-user startup toggle via HKCU Run.
- WiX v4 installer definition under
installer/DesktopIndicator.wxs.
The indicator looks like this on the taskbar (here I am on virtual desktop, the little number that you can see there):
dotnet build .\DesktopIndicator.csproj -c Releasedotnet run --project .\DesktopIndicator.csproj -c DebugVersion is sourced from Directory.Build.props unless you pass -Version.
pwsh .\scripts\build-installer.ps1pwsh .\scripts\build-installer.ps1 -Version 0.0.1The script:
- Publishes a self-contained single-file app.
- Passes the resolved installer version into publish, so EXE ProductVersion/FileVersion and MSI version stay aligned.
- Builds an MSI in
artifacts\installer\DesktopIndicator-<version>.msi. - Replaces an existing MSI with the same version number.
- Uses a fixed WiX UpgradeCode and MajorUpgrade, so future versions upgrade prior installs.
- Launches Desktop Indicator automatically after a successful first-time install.
- Internal virtual desktop COM interfaces are undocumented and can vary by Windows build.
- The provider is isolated so interop updates are localized to one module.
- Windows does not allow normal apps to force permanent corner visibility; users must enable it in Taskbar corner overflow.
- Run the app and confirm it appears in the taskbar corner as a notification-area icon.
- Right-click the icon and click "Keep icon always visible...", then turn on DesktopIndicator in Taskbar corner overflow.
- Switch virtual desktops and confirm the corner icon number updates right away.
- If tooltip shows "Virtual Desktop unavailable", the COM interface map needs compatibility updates for your Windows build.
