如果要永久设定其设定值,请将
b = ChangeDisplaySettings(DevM, 0)
改成
b = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
注:
DevM.dmBitsPerPel 便是设定颜色数,其实应说每个Pixel要多少Bits来显示
4 --> 16色
8 --> 256色
16 --> 65536色 以此类推
Option Explicit Private Declare Function EnumDisplaySettings Lib "user32" Alias _ "EnumDisplaySettingsA" (ByVal lpszDeviceName As Long, _ ByVal iModeNum As Long, lpDevMode As Any) As Long Private Declare Function ChangeDisplaySettings Lib "user32" Alias _ "ChangeDisplaySettingsA" (lpDevMode As Any, ByVal dwflags As Long) As Long Private Declare Function ExitWindowsEx Lib "user32" (ByVal uFlags As Long, _ ByVal dwReserved As Long) As Long Const EWX_REBOOT = 2 ’ 重开机 Const CCDEVICENAME = 32 Const CCFORMNAME = 32 Const DM_BITSPERPEL = &H40000 Const DISP_CHANGE_SUCCESSFUL = 0 Const DISP_CHANGE_RESTART = 1 Const CDS_UPDATEREGISTRY = 1 Private Type DEVMODE dmDeviceName As String * CCDEVICENAME 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 * CCFORMNAME dmUnusedPadding As Integer dmBitsPerPel As Integer dmPelsWidth As Long dmPelsHeight As Long dmDisplayFlags As Long dmDisplayFrequency As Long End Type Private DevM As DEVMODE Private Sub Command1_Click() Dim a As Boolean Dim i As Long Dim b As Long Dim ans As Long a = EnumDisplaySettings(0, 0, DevM) ’Initial Setting DevM.dmBitsPerPel = 8 ’设定成256色 DevM.dmFields = DM_BITSPERPEL b = ChangeDisplaySettings(DevM, 0) If b = DISP_CHANGE_RESTART Then ans = MsgBox("要重开机设定才能完成,重开?", vbOKCancel) If ans = 1 Then b = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY) Call ExitWindowsEx(EWX_REBOOT, 0) End If Else If b <> DISP_CHANGE_SUCCESSFUL Then Call MsgBox("设定有误", vbCritical) End If End If End Sub |
延伸阅读
文章来源于领测软件测试网 https://www.ltesting.net/
领测软件测试网最新更新
关于领测软件测试网 | 领测软件测试网合作伙伴 | 广告服务 | 投稿指南 | 联系我们 | 网站地图 | 友情链接
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073
版权所有(C) 2003-2010 TestAge(领测软件测试网)|领测国际科技(北京)有限公司|软件测试工程师培训网 All Rights Reserved
北京市海淀区中关村南大街9号北京理工科技大厦1402室 京ICP备2023014753号-2
技术支持和业务联系:info@testage.com.cn 电话:010-51297073