用vb代码怎样改变显示器的分辨率?
麻烦给我个代码.谢谢.

解决方案 »

  1.   

    遵从以下的步骤,你就可以改变屏幕的分辨率。将以下代码加入模块文件: Declare Function EnumDisplaySettings Lib "user32" _Alias "EnumDisplaySettingsA" _(ByVal lpszDeviceName As Long, _ByVal iModeNum As Long, _lpDevMode As Any) As Boolean Declare Function ChangeDisplaySettings Lib "user32" _Alias "ChangeDisplaySettingsA" _(lpDevMode As Any, ByVal dwFlags As Long) As Long Declare Function ExitWindowsEx Lib "user32" _(ByVal uFlags As Long, ByVal dwReserved As Long) As Long Public Const EWX_LOGOFF = 0Public Const EWX_SHUTDOWN = 1Public Const EWX_REBOOT = 2Public Const EWX_FORCE = 4Public Const CCDEVICENAME = 32Public Const CCFORMNAME = 32Public Const DM_BITSPERPEL = &H40000Public Const DM_PELSWIDTH = &H80000Public Const DM_PELSHEIGHT = &H100000Public Const CDS_UPDATEREGISTRY = &H1Public Const CDS_TEST = &H4Public Const DISP_CHANGE_SUCCESSFUL = 0Public Const DISP_CHANGE_RESTART = 1 Type DEVMODEdmDeviceName As String * CCDEVICENAMEdmSpecVersion As IntegerdmDriverVersion As IntegerdmSize As IntegerdmDriverExtra As IntegerdmFields As LongdmOrientation As IntegerdmPaperSize As IntegerdmPaperLength As IntegerdmPaperWidth As IntegerdmScale As IntegerdmCopies As IntegerdmDefaultSource As IntegerdmPrintQuality As IntegerdmColor As IntegerdmDuplex As IntegerdmYResolution As IntegerdmTTOption As IntegerdmCollate As IntegerdmFormName As String * CCFORMNAMEdmUnusedPadding As IntegerdmBitsPerPel As IntegerdmPelsWidth As LongdmPelsHeight As LongdmDisplayFlags As LongdmDisplayFrequency As LongEnd Type  2、下面的例子将演示如何把屏幕分辨率更改为640x480(保持原来的颜色数)。 Dim DevM As DEVMODE'DevM收集信息erg& = EnumDisplaySettings(0&, 0&, DevM)'不改变颜色数目是因为如果改变颜色数就要重新启动 DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT 'Or DM_BITSPERPELDevM.dmPelsWidth = 640 '屏幕宽度DevM.dmPelsHeight = 480 '屏幕高度'DevM.dmBitsPerPel = 32 (还可以为 8, 16, 32甚至4)'改变显示模式并检查是否可能 erg& = ChangeDisplaySettings(DevM, CDS_TEST)'检查是否成功 Select Case erg&Case DISP_CHANGE_RESTARTan = MsgBox("你现在必须重新启动系统,执行吗?", vbYesNo + vbSystemModal, "消息")If an = vbYes Then erg& = ExitWindowsEx(EWX_REBOOT, 0&)End IfCase DISP_CHANGE_SUCCESSFULerg& = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)MsgBox "一切正常!", vbOKOnly + vbSystemModal, "成功"Case ElseMsgBox "显示模式不支持", vbOKOnly + vbSystemModal, "错误"End Select End Sub