Reputation: 1519
I am looking to get the total screen resolution using dual monitors in powershell.
$screen = [System.Windows.Forms.Screen]::PrimaryScreen
$SCREENWIDTH = [int]$screen.bounds.Size.Width
$SCREENHEIGHT = [int]$screen.bounds.Size.Height
With this I get 1920 X 1200 but the resolution is actually 3840 X 1200. I could just double the resolution, however that wont always work depending on the monitors being used.
I am doing this within powershell studio. The reason for knowing this is because sometimes the program opens up off screen, if it does open off screen, I can move it back to the bottom right hand corner.
Upvotes: 0
Views: 2510
Reputation: 1519
This is what I found works with the help of Martin. But I know it is super sloppy. I may ask another question to try to get this cleaned up.
$screen = [System.Windows.Forms.Screen]::AllScreens | select -ExpandProperty bounds
foreach ($item in $screen)
{
$item = $item -replace ".*Y=0,","" -replace "{", "" -replace "}", "" -replace "Width=", "" -replace "Height=", "" -replace ",", ";"
$pos = $item.IndexOf(";")
$leftPart = $item.Substring(0, $pos)
$rightPart = $item.Substring($pos + 1)
[int]$SCREENWIDTH = $SCREENWIDTH + $leftPart
[int]$SCREENHEIGHT = $rightPart
}
$richtextbox1.Text = ([string]$SCREENWIDTH + " " + [string]$SCREENHEIGHT)
Upvotes: 1
Reputation: 1963
On the primary Screen the Resolution is still 1920x1200. You can check, how much screens are attached ( [System.Windows.Forms.Screen]::AllScreens
) and work with the bounds [System.Windows.Forms.Screen]::AllScreens | select -ExpandProperty bounds
.
Upvotes: 2