社区
VB基础类
帖子详情
急救:请问如何通过注册表得知桌面的分辨率
titan90
2003-10-15 06:21:10
请问如何通过注册表得知桌面的分辨率,最好有代码,谢谢
...全文
166
2
打赏
收藏
急救:请问如何通过注册表得知桌面的分辨率
请问如何通过注册表得知桌面的分辨率,最好有代码,谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
2 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
yoki
2003-10-15
打赏
举报
回复
遵从以下的步骤,你就可以改变屏幕的分辨率。将以下代码加入模块文件:
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 = 0
Public Const EWX_SHUTDOWN = 1
Public Const EWX_REBOOT = 2
Public Const EWX_FORCE = 4
Public Const CCDEVICENAME = 32
Public Const CCFORMNAME = 32
Public Const DM_BITSPERPEL = &H40000
Public Const DM_PELSWIDTH = &H80000
Public Const DM_PELSHEIGHT = &H100000
Public Const CDS_UPDATEREGISTRY = &H1
Public Const CDS_TEST = &H4
Public Const DISP_CHANGE_SUCCESSFUL = 0
Public Const DISP_CHANGE_RESTART = 1
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
2、下面的例子将演示如何把屏幕分辨率更改为640x480(保持原来的颜色数)。
Dim DevM As DEVMODE
'DevM收集信息
erg& = EnumDisplaySettings(0&, 0&, DevM)
'不改变颜色数目是因为如果改变颜色数就要重新启动
DevM.dmFields = DM_PELSWIDTH Or DM_PELSHEIGHT 'Or DM_BITSPERPEL
DevM.dmPelsWidth = 640 '屏幕宽度
DevM.dmPelsHeight = 480 '屏幕高度
'DevM.dmBitsPerPel = 32 (还可以为 8, 16, 32甚至4)
'改变显示模式并检查是否可能
erg& = ChangeDisplaySettings(DevM, CDS_TEST)'检查是否成功 Select Case erg&
Case DISP_CHANGE_RESTART
an = MsgBox("你现在必须重新启动系统,执行吗?", vbYesNo + vbSystemModal, "消息")
If an = vbYes Then erg& = ExitWindowsEx(EWX_REBOOT, 0&)
End If
Case DISP_CHANGE_SUCCESSFUL
erg& = ChangeDisplaySettings(DevM, CDS_UPDATEREGISTRY)
MsgBox "一切正常!", vbOKOnly + vbSystemModal, "成功"
Case Else
MsgBox "显示模式不支持", vbOKOnly + vbSystemModal, "错误"End Select
End Sub
yoki
2003-10-15
打赏
举报
回复
不用注册表,下面的例子将演示如何得到当前屏幕的分辨率:
ResWidth = Screen.Width \ Screen.TwipsPerPixelX
ResHeight = Screen.Height \ Screen.TwipsPerPixelY
ScreenRes = ResWidth & "x" & ResHeight
ResWidth和ResHeight分别表示屏幕的宽和高,比如这样的结果:
800x600
IE
急救
箱,
桌面
图标不能删除,修改
注册表
经常碰到上了一些网站或者下载了一些东西,然后
桌面
上会多几个图标,
桌面
删也删不掉,后来终于发现了这个好东西,拿来跟大家分享。一下解决问题,不需要再修改
注册表
,麻烦了
急救
箱资源
资源
急救
箱,可以帮助别人恢复系统中的文件
注册表
360
急救
箱win7 32位
32位系统使用,用于
注册表
dll文件的异常
Windows XPE 安装
XPE,基于Windows XP Embedded操作系统,拥有Windows XP 专业版的所有功能和属性,又拥有Windows CE产品可根据应用需要能任意裁减的特点。系统内核小、占用系统资源少、启动速度快、系统拥有增强写保护*等
桌面
XP系统所不具备的功能。 Windows XP Embedded和Windows XP Professional 拥有相同的核心,所以它可以具备XP Professional的所有功能及应用软件的兼容性。凡能在 XP Professional上应用的软件就能在XP Embedded的平台上应用。 XP Embedded拥有比XP Professional更高的系统自身保护功能。如系统9层屏蔽保护*、系统增强过滤写保护*等 其保护主要是基于EWFMGR保护技术,目前分为3种保护方式:硬盘保护模式、内存保护模式、内存保护
注册表
模式,其中硬盘保护模式下允许在受保护盘上写入数据,也就是说在不输入保护指令的同时机器重启之后能保存先前的修改,如果是内存保护或者内存保护
注册表
模式,责在没有输入保护指令的情况下,当前系统所作的修改,包括:安装软件,保存数据等,都是临时缓存在内存中,系统重启之后这些修改会全部丢失。 可以刻成盘或装在U盘、移动磁盘里,可以单独使用,可以抢救台机里的文件
简单修复系统问题
在电脑中毒,杀软打不开,任务管理器打不开,
急救
的小工具 Administrator帐户设为不隐藏 IE不能打开新链接修复 解开任务管理器禁用 修复EXE文件关联
注册表
解禁
VB基础类
7,762
社区成员
197,608
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章