Cod*_*ray 30
1)如何阅读当前的屏幕分辨率?
获取当前的屏幕分辨率很容易并且内置到框架中,而无需深入研究类似GetSystemMetricsAPI的内容.的Screen类包含关于所有附接到系统中的显示设备的信息.因此,要确定主监视器的分辨率,您可以使用以下内容:
Dim screenWidth as Integer = Screen.PrimaryScreen.Bounds.Width
Dim screenHeight as Integer = Screen.PrimaryScreen.Bounds.Height
Run Code Online (Sandbox Code Playgroud)
要处理多个监视器,请查看Screen.AllScreens属性,该属性返回Screen与连接到系统的每个显示对应的对象数组.然后,您可以通过循环遍历Screen对象数组来确定(使用上面的代码)连接到计算机的每个显示器的分辨率.
2)如何从VB.NET应用程序更改当前屏幕分辨率?
更改屏幕分辨率要困难一些.在进一步讨论之前,我会提醒您,调整用户显示分辨率的应用程序是意外的,可能会产生恶意的用户环境.我知道我不会使用在未经许可的情况下改变我的屏幕分辨率的应用程序,并且我认为使用一个要求我完全执行此操作的应用程序.如果您正在尝试制作屏幕保护程序,那么可能有更好,更简单的方法来完成您想要的操作.话虽这么说,如果你愿意从Windows API P/Invoke一些函数,它可以从VB.NET完成.
如果您只关心单个监视器的情况,最简单的方法是使用该ChangeDisplaySettings功能,该功能允许您指定默认显示的图形模式(仅限用户的主监视器).
要处理多个监视器的情况,您需要使用该EnumDisplayDevices功能获取有关连接到计算机的所有显示设备的信息,以及ChangeDisplaySettingsEx更改特定屏幕的功能.
查看pinvoke.net,了解如何在VB.NET中声明Windows API调用的签名.虽然我还没有验证他们提供的示例代码,但谷歌搜索出现了这个帖子.
要仅在应用程序运行时修改屏幕分辨率,然后在用户退出程序时将其恢复,您需要先修改当前屏幕设置,然后再修改它们(使用相同的方法调用)申请退出.
如何获取当前屏幕分辨率
Public Function ScreenResolution() As String
Dim intX As Integer = Screen.PrimaryScreen.Bounds.Width
Dim intY As Integer = Screen.PrimaryScreen.Bounds.Height
Return intX & " × " & intY
End Function
Run Code Online (Sandbox Code Playgroud)
如何更改当前屏幕分辨率 —解决方案