获取当前的屏幕分辨率是容易的并且内置到框架中,而不必深入研究如GetSystemMetrics API。 Screen
类包含有关连接到系统的所有显示设备的信息。为了确定主显示器的分辨率,您可以使用以下内容:
Dim screenWidth as Integer = Screen.PrimaryScreen.Bounds.Width Dim screenHeight as Integer = Screen.PrimaryScreen.Bounds.Height
要处理多个显示器,请查看Screen.AllScreens属性,该属性返回与附加到系统的每个显示器相对应的Screen对象数组。然后,您可以通过遍历Screen对象数组来确定(使用上述代码)附加到计算机的每个显示器的分辨率。
2)如何从VB.NET应用程序更改当前的屏幕分辨率?
改变屏幕分辨率有点困难。在进一步之前,我会提醒您,调整用户的显示分辨率的应用程序是意想不到的,可能是creates a hostile user environment.我知道我不会使用未经许可改变我的屏幕分辨率的应用程序,我会想到很久很久使用一个需要我这样做的。如果你想要制作一个屏幕保护程序,可能会有更好的和更简单的方法来做你想要的。话虽如此,如果您愿意从Windows API P / Invoke一些功能,可以从VB.NET完成。
如果您只关注单个显示器的情况,最简单的方法是使用ChangeDisplaySettings
功能,允许您指定默认显示器的图形模式(仅用户主要显示器)。
要处理多个显示器的情况,您需要使用EnumDisplayDevices
功能来获取有关连接到计算机的所有显示设备的信息,以及更改特定屏幕的ChangeDisplaySettingsEx
功能。
查看pinvoke.net如何在VB.NET中声明Windows API调用的签名。尽管我尚未验证他们提供的示例代码,Google搜索已经开始this thread。
要在您的应用程序运行时修改屏幕分辨率,然后在用户退出程序时还原屏幕分辨率,您需要在修改当前屏幕设置之前保存当前屏幕设置,然后在使用相同的方法调用时将其还原(使用相同的方法调用)应用程序退出。