How to hide DisplaySwitch.exe sidebar when running from C#

Viewed 320

Hello I wrote a pretty simple application in C# that allows me to change my display settings for monitors to Clone or Extended displays:

enum DisplayMode
{
    Internal,
    External,
    Extend,
    Duplicate
}  



private void duplicateButton_Click(object sender, EventArgs e)
{
    SetDisplayMode(DisplayMode.Duplicate);
}
    
private void extendButton_Click(object sender, EventArgs e)
{
    SetDisplayMode(DisplayMode.Extend);
}
    
private void SetDisplayMode(DisplayMode mode)
{
    var proc = new Process();
    proc.StartInfo.UseShellExecute = true;
    proc.StartInfo.FileName = "DisplaySwitch.exe";
    proc.StartInfo.CreateNoWindow = true;
    proc.StartInfo.WindowStyle = ProcessWindowStyle.Hidden;

    switch (mode)
    {
        case DisplayMode.External:
            proc.StartInfo.Arguments = "/external";
            break;
        case DisplayMode.Internal:
            proc.StartInfo.Arguments = "/internal";
            break;
        case DisplayMode.Extend:
            proc.StartInfo.Arguments = "/extend";
            break;
        case DisplayMode.Duplicate:
            proc.StartInfo.Arguments = "/clone";
            break;
    }
    proc.Start();
}

It is based on runnning windows application DisplaySwitch.exe and everything is working well, despite opening right side bar (same one as you get when using Windows+P shortcut): Sidebar

Is it possible to somehow force it to not show that sidebar, already tried some flags as you can see in the code, but it is still showing.

0 Answers
Related