Option Explicit
Public Declare Function ChangeDisplaySettings Lib "user32.dll" Alias "ChangeDisplaySettingsA" (ByRef lpDevMode As DEVMODE, ByVal dwFlags As Long) As Long
Public Declare Function EnumDisplaySettings Lib "user32.dll" Alias "EnumDisplaySettingsA" (ByVal lpszDeviceName As String, ByVal iModeNum As Long, ByRef lpDevMode As DEVMODE) As Long
Const DM_PELSHEIGHT As Long = &H100000
Const DM_PELSWIDTH As Long = &H80000
Const DM_BITSPERPEL As Long = &H40000
Const DM_DISPLAYFREQUENCY As Long = &H400000
Const ENUM_CURRENT_SETTINGS = -1
Const CCHDEVICENAME As Long = 32
Const CCHFORMNAME As Long = 32
Const CDS_TEST = &H4
Private Type DEVMODE
dmDeviceName As String * CCHDEVICENAME
dmSpecVersion As Integer
dmDriverVersion As Integer
dmSize As Integer
dmDriverExtra As Integer
dmFields As Long
dmOrientation As Integer
dmPaperSize As Integer
dmPaperLength As Integer
dmPaperWidth As Integer
dmScale As Integer
dmCopies As Integer
dmDefaultSource As Integer
dmPrintQuality As Integer
dmColor As Integer
dmDuplex As Integer
dmYResolution As Integer
dmTTOption As Integer
dmCollate As Integer
dmFormName As String * CCHFORMNAME
dmUnusedPadding As Integer
dmBitsPerPel As Integer
dmPelsWidth As Long
dmPelsHeight As Long
dmDisplayFlags As Long
dmDisplayFrequency As Long
End Type
Sub Main()
Dim i As Long
Dim strArgs() As String
Dim width As Long
Dim height As Long
strArgs = Split(Command$, " ")
width = strArgs(0)
height = strArgs(1)
i = SetDisplaymode(width, height, 32, 1)
'i = getDispayMode()
End Sub
''-------------------------------------------------------------------------------------------
'' LngWidth //屏幕的宽(单位象素)
'' LngHeight //屏幕的高(单位象素)
'' IntColor //多少位颜色(e.g 16 or 32)
'' LngFrequency //屏幕的刷新频率
''
''声明:
'' 调用该函数时要确定所设置的值在系统所允许的设置范围内,比如系统的最大刷新频率位80,而你
'' 用把LngFrequency设位85,这样将带来无法预测的后果。
''------------------------------------------------------------------------------------------
Public Function SetDisplaymode(LngWidth As Long, LngHeight As Long, IntColor As Integer, LngFrequency As Long) As Long
Dim NewDevmode As DEVMODE
Dim lngP As Long
Const CDS_UPDATEREGISTRY = 1
'obtains information
EnumDisplaySettings 0&, 0&, NewDevmode
With NewDevmode
.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT Or DM_BITSPERPEL Or DM_DISPLAYFREQUENCY
.dmPelsWidth = LngWidth '设定成想要的分辨率
.dmPelsHeight = LngHeight
' .dmBitsPerPel = IntColor
'.dmDisplayFrequency = LngFrequency
End With
'永久改变
SetDisplaymode = ChangeDisplaySettings(NewDevmode, CDS_UPDATEREGISTRY Or CDS_TEST)
'程序运行时改变
' SetDisplaymode = ChangeDisplaySettings(NewDevmode, CDS_TEST)
End Function
Public Function getDispayMode() As Long
MsgBox Screen.width / Screen.TwipsPerPixelX & "×" & Screen.height / Screen.TwipsPerPixelY
MsgBox Screen.TwipsPerPixelX & "×" & Screen.TwipsPerPixelY
End Function
分享到:
相关推荐
VB 窗体自适应屏幕分辨率大小是指在 VB 中使窗体可以根据屏幕分辨率的变化而自适应调整大小,以确保窗体在不同屏幕分辨率下的正确显示。本文将详细介绍如何实现 VB 窗体的自适应屏幕分辨率大小。 一、实现 VB 窗体...
设置屏幕分辨率(VB6.0版),可以自行设置
在VB(Visual Basic)编程中,捕获屏幕分辨率的变化是一项基本但至关重要的任务,尤其是在开发图形用户界面(GUI)或依赖特定布局的应用程序时。当用户的显示器设置更改时,能够实时适应新分辨率的软件可以提供更好...
这个“VB.NET屏幕分辨率设置源码”项目为开发者提供了一个很好的学习示例,它展示了如何使用VB.NET语言来操作系统的显示设置。 首先,我们需要了解Windows API。API是操作系统提供给开发者的函数库,它允许应用程序...
在VB(Visual Basic)编程环境中,我们可以利用API(应用程序接口)函数来实现调整计算机屏幕分辨率的功能。这是一项实用的技术,特别是在开发系统设置相关的应用程序时。本文将深入探讨如何使用VB来调整屏幕分辨率...
在VB(Visual Basic)编程中,获取屏幕分辨率是一项常见的任务,尤其在开发桌面应用程序时,了解用户显示器的尺寸有助于提供良好的界面布局。本篇将详细解释如何使用VB代码来获取屏幕分辨率,并涉及到WIM(Windows ...
在VB(Visual Basic)编程环境中,修改电脑屏幕分辨率是一项常见的任务,尤其在自动化脚本或者系统设置程序中。VB提供了一种与操作系统交互的方式,通过Windows API(应用程序接口)来改变显示器的设置。以下是关于...
在VB中,我们可以调用Windows操作系统提供的API函数来设置屏幕分辨率。其中,最常用的API函数是`ChangeDisplaySettings`,它属于`User32.dll`库。首先,我们需要声明这个函数: ```vb Private Declare Function ...
vb源码,可以直接获取屏幕分辨率,另外也可设置新的屏幕分辨率,还可还原到最初的屏幕分辨率,可允许100次重复设置与撤销设置屏幕分辨率(当然很少有人需要如此大数量级的重复与撤销),并且允许快捷键Ctrl+Z撤销...
在Visual Basic 6.0(VB6)编程中,获取和设置显示器分辨率是常见的系统交互操作,这通常涉及到与Windows API(应用程序接口)的交互。API是操作系统提供给程序员的一组函数,允许程序访问和控制操作系统的核心功能...
在VB6(Visual Basic 6)中,程序员可以利用API(应用程序编程接口)函数来实现对计算机屏幕分辨率的控制。屏幕分辨率是指屏幕上像素点的数量,通常以宽度*高度的形式表示,例如1920*1080。通过编写特定的代码,我们...
随着显示器技术的发展,用户使用的屏幕分辨率种类越来越多。为了保证应用程序的用户体验,开发者需要确保其设计的用户界面能够根据不同的分辨率进行相应的调整。在VB6中,这通常涉及到对窗口和控件的位置及大小进行...
屏幕分辨率是计算机显示设置中的一个重要参数,它决定了显示器上像素的数量和排列方式,直接影响到屏幕显示的清晰度和细腻程度。在VB(Visual Basic)环境中,我们可以编写源代码来实现对屏幕分辨率的修改功能。本篇...
这是VB捕获屏幕分辨率的改变源码编译出来的预览版,给各位预览一下,源码演示的是在VB中如何捕获屏幕分辨率的改变,并获得新的分辨率。如果符合要求就给5个分下同名的压缩包。
在上面的代码中,我们使用了当前的分辨率来计算控件的新的位置和大小,并将其设置到控件上。 在使用该解决方案时,我们只需要在VB 项目中添加该模块,并在需要自适应调整界面的地方调用GetSourcePos 和 SetNewPos ...
在这个特定的案例中,开发者利用VB的功能创建了一个实用工具,帮助用户方便快捷地设定屏幕分辨率,而不用担心因错误设置导致的屏幕黑屏问题。 描述中提到的“防止错误设置黑屏的功能”是这个程序的一个关键特性。在...
在VB(Visual Basic)编程中,创建一个能够适应不同分辨率的窗体界面是提升用户体验的重要环节。当用户在不同尺寸的显示器上运行程序时,一个能够自动调整大小和布局的界面将显得更加友好。本篇将详细探讨如何利用VB...
在Windows操作系统中,屏幕分辨率是显示器显示内容时像素的数量,通常以宽度和高度的像素数表示,例如1920x1080。这个VB程序可以帮助开发者了解如何与Windows API交互,以获取这些关键的系统信息。 VB是一种基于...
总结来说,VB获取电脑屏幕分辨率的这项功能是通过`System.Windows.Forms.Screen`类实现的,它可以提供关于显示器的各种信息。对于VB新手来说,掌握这部分知识有助于提高编程技能,能够编写出更符合用户需求的应用...
本文将详细介绍如何利用Visual Basic (VB)结合Windows API来实现对屏幕分辨率的设置。 #### Windows API与VB集成 Windows API(Application Programming Interface)是微软提供的一系列用于开发Windows应用程序的...