dispctl What I want dispctl to do I want to be able to switch monitor modes from the windows tray bar I want to be able to define modes using a gui: Show the user the current monitors and modes Create an easy to use gui to define new modes A mode could be a combination of enabled monitors like so: Main setup - Triple monitors setup enabled by default Work setup - Single monitor as primary, other monitors disabled Couch setup - TV as primary, other monitors disabled A mode should include The combination of monitors enabled The selected resolution of each monitor The primary monitor References Code Project - Changing Display Settings Programmatically Github - dahall / Vanara Github - dotnet / docs (HelloWorldSample) Github - dotnet / pinvoke Github - Grunge / setDisplayRes Github - microsoft / CsWin32 Github - timmui / ScreenResolutionChanger Github - VFPX / Win32API Microsoft - ChangeDisplaySettingsExA function (winuser.h) Microsoft - Getting Started with EF Core Microsoft - Microsoft.Data.Sqlite overview Pinvoke SQLite Tutorial StackOverflow - C++ application to detach secondary monitor StackOverflow - Use Windows API from C# to set primary monitor