Search code examples
winformspowershellwinapiscreen-resolution

PowerShell script returning the wrong screen resolution


I just wrote a simple PowerShell script to get the screen resolution of my monitor, but it seems to be returning the wrong values.

# Returns an screen width and screen height of maximum screen resolution
function Get-ScreenSize {
    $screen = [System.Windows.Forms.Screen]::PrimaryScreen
    $width  = $screen.Bounds.Width
    $height = $screen.Bounds.Height
    return $width, $height
}

Get-ScreenSize

I am running this script on a 4k monitor with the resolution set at 3840 x 2160, but it is giving me the following output:

1536

864

Is there anything that would cause System.Windows.Forms.Screen to get the wrong "Bounds" values?


Solution

  • It's because that command gives you the scaled resolution. If you're running 3840 x 2160 but you're not running on 100% scaling you'll get a different value.