RVK
(Rvk)
January 2, 2023, 10:51am
1
Hello Everyone,
How to get windows screen size after zoom in
screen.primaryscreen gives total height and width eg.,(1920*1080) but how can we get screen size after zoom into 125% or 150%
This is 100% working . area is 1920*1080
when zoomed in to 150%
1270-665 for 150% - but the workingarea sysntax result is 1920-1040
How to get only visible screen size coordinates
HI @RVK
I think the resolution will not change if you change the size of the texts , apps and other things.
Regards
Sudharsan
The property “WorkingArea” is used to get the working area of the display. The working area is the desktop area of the display, excluding taskbars, docked windows, and docked tool bars.
HeightValue = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Height.ToString
WidthValue = System.Windows.Forms.Screen.PrimaryScreen.WorkingArea.Width.ToString
If you want to get the resolution, you can use the property “Bounds”.
HeightValue = Screen.PrimaryScreen.Bounds.Height.ToString
WidthValue = Screen.PrimaryScreen.Bounds.Width.ToString
Or you can use this PowerShell script for more accurate details:
# Get display details: display count, display Height and Width, Scale DPI, Bits per pixel
Add-Type -AssemblyName System.Windows.Forms
$screen_cnt = [System.Windows.Forms.Screen]::AllScreens.Count
$col_screens = [System.Windows.Forms.Screen]::AllScreens
$rh=[int](Get-CimInstance -ClassName Win32_VideoController)[0].CurrentVerticalResolution
Write-Host "TOTAL SCREEN COUNT: $screen_cnt `n"
$info_screens = ($col_screens | ForEach-Object {
if ("$($_.Primary)" -eq "True") {$monitor_type = "Primary Monitor "} else {$monitor_type = "Secondary Monitor "}
if ("$($_.Bounds.Width)" -gt "$($_.Bounds.Height)") {$monitor_orientation = "Landscape"} else {$monitor_orientation = "Portrait"}
Write-Host $monitor_type "(Bounds) $($_.Bounds)"
Write-Host $monitor_type "(Primary) $($_.Primary)"
Write-Host $monitor_type "(Device Name) $($_.DeviceName)"
if(([int]$_.Bounds.Width -ge 1024) -and ([int]$_.Bounds.Height -ge 768)){
Write-Host $monitor_type "(ResolutionWidth x ResolutionHeight) $($_.Bounds.Width) x $($_.Bounds.Height) ($monitor_orientation)" -ForegroundColor green
}
if(([int]$_.Bounds.Width -lt 1024) -and ([int]$_.Bounds.Height -lt 768)){
Write-Warning "Resolutions below 1024x768 are not supported. Running Studio on such displays causes the Studio Backstage view to be displayed incorrectly."
Write-Host $monitor_type "(ResolutionWidth x ResolutionHeight) $($_.Bounds.Width) x $($_.Bounds.Height) ($monitor_orientation)" -ForegroundColor red
}
Write-Host $monitor_type "(ResolutionDepth) $($_.BitsPerPixel)"
$vh=[int]$_.Bounds.Height
$screen_scale_factor=$rh/$vh*100
if($screen_scale_factor -ne 100){
Write-Warning "Your display scale is not 100%. This may impact your UiAutomation projects. In some cases you may have errors such as: 'Cannot send input to UI element because it is outside of screen bounds', 'Timeout reached', and many more."
Write-Host $monitor_type "(Scale DPI) $screen_scale_factor%" -ForegroundColor yellow
}
if($screen_scale_factor -eq 100){
Write-Host $monitor_type "(Scale DPI) $screen_scale_factor%" -ForegroundColor green
}
Write-Host $monitor_type "(Working Area) $($_.WorkingArea) `n"
Write-Host "----------------------------------------------------------------------------------------------------------------------------`n"
}
)
$info_screens
Example:
1 Like
varunk
(Varun Kumar)
January 2, 2023, 2:25pm
4
@RVK
Import the namespace System.Windows.Forms & try you will get
you can just use the entire line like:
System.Windows.Forms.Screen.PrimaryScreen.Bounds.Width
Thanks
Varun
system
(system)
Closed
January 5, 2023, 2:25pm
5
This topic was automatically closed 3 days after the last reply. New replies are no longer allowed.