VB6中改变屏幕的分辨率和刷新频率!!!

分辨率|刷新

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 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

'-------------------------------------------------------------------------------------------
' 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

'obtains information
EnumDisplaySettings 0&, 0&, NewDevmode

With NewDevmode
.dmFields = DM_PELSHEIGHT Or DM_PELSWIDTH Or DM_BITSPERPEL Or DM_DISPLAYFREQUENCY
.dmPelsWidth = LngWidth
.dmPelsHeight = LngHeight
.dmBitsPerPel = IntColor
.dmDisplayFrequency = LngFrequency
End With

SetDisplaymode = ChangeDisplaySettings(NewDevmode, CDS_TEST)
End Function

时间: 2024-09-30 23:27:10

VB6中改变屏幕的分辨率和刷新频率!!!的相关文章

C#中改变显示器的分辨率和刷新率

分辨率|刷新|显示 下面的代码实现修改显示器分辨率和刷新频率的功能: using System;using System.Drawing;using System.Collections;using System.ComponentModel;using System.Windows.Forms;using System.Data;using System.Runtime.InteropServices; namespace ScreenResolution{   public class Fo

Win8设置屏幕分辨率和屏幕刷新频率图文教程

  Win8设置屏幕分辨率和屏幕刷新频率图文教程         Win8屏幕的改变可以实现多种操作设定,包括屏幕分辨率的调整.显示器的选择以及横竖屏的切换等等.Win8这些屏幕设定功能的运用,跟过去的操作系统相比,有什么特点或是不同点?我们就在本期的Win8大百科栏目中为大家介绍一下. 桌面上右键即可找到"屏幕分辨率"项 横纵屏的调整 在屏幕分辨率选项中,我们先来看看一项比较有意思的设置.这个有意思的设置就是横纵屏方向设定.如果您所使用的显示器是可以旋转的屏幕,那么配合这项功能来设定

flash中获得用户屏幕的分辨率脚本

分辨率|脚本 flash中可以使用如下程序获得承载flash播放器的用户屏幕的分辨率,这对于需要制作根据屏幕的分辨率相适应的flash很有帮助的,尤其是移动设备. trace(System.capabilities.screenResolutionX) trace(System.capabilities.screenResolutionY) 关于System.capabilities 对象其他属性摘要可以使用如下代码输出 for(var i in System.capabilities){ tr

Android中 视频屏幕左半部分上下滑动改变亮度右半部分上下滑动改变声音_Android

说明: 实现功能: (1)屏幕右半部分上滑,声音变大,下滑,声音变小 屏幕左半部分上滑,亮度变大,下滑,亮度变小 (2)如果亮度>1或者小于0.2时,手机震动 private float startY;//记录手指按下时的Y坐标 private float startX;//记录手指按下时的Y坐标 private int downVol;//记录手指按下时的音量 private Vibrator vibrator;//手机震动器 //不要忘记震动权限<uses-permission andro

在VB.NET中改变显示器的分辩率

显示 在VB.NET中,我们很容易获得显示器的分辩率,但是,要改变显示器的分辩率就比较麻烦了.由于.NET的类库没有将EnumDisplaySettings 和ChangeDisplaySettings这两个API函数进行封装,但是我们得调用它们函数,相对于VB6来说,VB.NET调用API函数是有一些小的改动!下面,我们就尝试一下在VB.NET中,使用这两个API函数.新建一个项目,在Form1上添加两个按钮,一个名为btnGetDisp,将其Text属性设置为"得到分辩率":另一个

如何在 Linux 中使用屏幕键盘

如何在 Linux 中使用屏幕键盘 屏幕键盘可以作为实体键盘输入的替代方案.在某些时候,屏幕键盘显得非常需要. 比如, 你的键盘刚好坏了:你的机器太多,没有足够的键盘:你的机器没有多余的接口来连接键盘:你是个残疾人,打字有困难:或者你正在组建基于触摸屏的信息服务站. 屏幕键盘也可以作为一种防范实体键盘记录器的保护手段,键盘记录器会悄悄记录按键来获取密码等敏感信息.一些网上银行页面实际上会强制你使用屏幕键盘来增强交易的安全性. 在 linux 中有几个可用的开源键盘软件, 比如 GOK (Gnom

VB6中水晶报表(Crystal Report 4.6)的使用经验

水晶报表 我第一次接触水晶报表是在2001年3月在我的同事尹晓祥同志开始接触水晶报表的. 水晶报表(Crystal Report 4.6)只支持Access97格式的数据库, 所以,先在Access2000格式中设置好表与表的关 系,再把表转换到97格式,在水晶报表中调入97数据库后,在Links中自动会找出表间的关系. 水晶报表在VB的安装盘中已自带了. 路径: COMMON\TOOLS\VB\CRYSREPT\CRYSTL32.EXE系列号: 1231467890安装后,运行路径: \Pro

VB6 中 善用 ByRef 提升速度

速度   和.Net 中不同,VB6 中默认是使用 ByRef 来传递参数了,看来似乎没有什么可以优化得地方. 可是,实际上 如果你调用 API 得话,从 API浏览器复制下来得代码却是 强制使用 ByVal 传参得 这就给了我们优化得机会.结合以前写得 善用 API 的SendMessage 来提高 插入 VB.ComboBox Item 的速度 我又重新使用该代码 分别测试了一下 ByRef ,ByVal 得区别,结果很振奋: ByRef 比 ByVal 提高了16倍 代码如下,插入Comb

如何在win7笔记本中修改屏幕字体大小?

  大家知道,笔记本的具体尺寸规格是不一样的,大的可能达到17存左右,而小的则只有10存左右,但是对于咱们安装的系统来说,不可能按照每一个规格为我们形成一个系统,所有的系统版本,字体大小都是设置的默认的,但是有的朋友就犯难了,自己的电脑屏幕很小,但是安装的win7旗舰版的字体就显得比较的格格不入了,那么咱们是否可以手动的执行操作,来更改系统的字体大小呢? 1.首先,咱们返回到桌面的界面,然后在桌面找到一个空白处点击右键,选择下滑菜单中的屏幕分辨率. 2.接下来会弹出一个窗口,咱们找到其中的"放大