社区
VB基础类
帖子详情
急救:请问如何通过注册表得知桌面的分辨率
titan90
2003-10-15 06:21:10
请问如何通过注册表得知桌面的分辨率,最好有代码,谢谢
...全文
190
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
基础
各位兄弟,在SDK编程中如果实现窗口分割呢?
请问
怎么得到一个函数的执行时间,单位毫秒!如何调试asp组件呀。用vc++调试编制的组件怎样画一个箭头?高分请教如何限制程序运行的方法?求助:通过编程DirectX抓屏------>masterz:再麻烦你一下,谢谢熟悉RichEdit的朋友过来看一下,RichEdit的几个问题.如何对 I/O 端口进行操作?有了该问题就有了思考(100分 献礼!)如何
我在CSDN参与的3000个帖子
今日偶然翻到,感慨万千 1:申述:版主,是否扣了我的专家分? 2:100分急求,随机输出十个小写字母,但是,要求这十个字母不相同 3:求Sn=a+aa+aaa+…+aaa…a(n个a)之值 4:数组题 望高手帮忙! 5:呵呵,来推荐一下我的网站,本站提供大量当今流行的免费的音乐和免费电影,常用软件、游戏、精美图库下载,希望对网友有帮助!顺便散分! 6:VBA请教怎
Thinkpad常见问题大全(转载联想工程师博客)
想要收藏本篇文章请下载Word版 Q:我想升级成VISTA,想问一下,升级之后一键恢复是恢复到XP还是VISTA?A:如果从隐含分区恢复出厂设置,那当然是恢复到出厂时预装的系统;如果是用R&
CSDN回帖得分大全(近两年)
√ vs2005调用dll的时候Initialize()函数返回错误 [VC/MFC 基础类] √ 为什么我创建登陆框之后,然后获取登陆框的数据时候总是出现非法操作! [VC/MFC 界面] √ CFileFind::FindFile 支持通配符么? [VC/MFC 基础类] √ vc++ 浮动窗口联动的实现 [VC/MFC 界面] ...
TowardsDataScience 博客中文翻译 2021(六百五十三)
来自Pexels的摄影信息。这个术语在每一个可能的场景中都出现过。但是理所当然的是,世界是靠信息运行的。那是什么?解释它的最简单的方法是通过一个例子。假设你正在杂货店购物,你已经挑选了多件商品。你知道这些物品的价格;因此这是你的原始数据。稍后,当你在柜台结账时,收银员会扫描这些物品,并给你这些物品的总价。说得详细点,收银员会用每件商品的成本来处理商品的数量,给你一个固定的数字,你可以支付。在某种程度上,收银员处理原始数据(单个商品的价格)并给你信息(最终的账单金额)。
VB基础类
7,789
社区成员
197,583
社区内容
发帖
与我相关
我的任务
VB基础类
VB 基础类
复制链接
扫一扫
分享
社区描述
VB 基础类
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章