国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁(yè) > 編程 > .NET > 正文

在VB.NET中改變顯示器的分辯率

2024-07-10 13:02:37
字體:
來(lái)源:轉(zhuǎn)載
供稿:網(wǎng)友
在vb.net中,我們很容易獲得顯示器的分辯率,但是,要改變顯示器的分辯率就比較麻煩了。由于.net的類(lèi)庫(kù)沒(méi)有將enumdisplaysettings 和changedisplaysettings這兩個(gè)api函數(shù)進(jìn)行封裝,但是我們得調(diào)用它們函數(shù),相對(duì)于vb6來(lái)說(shuō),vb.net調(diào)用api函數(shù)是有一些小的改動(dòng)!
下面,我們就嘗試一下在vb.net中,使用這兩個(gè)api函數(shù)。
新建一個(gè)項(xiàng)目,在form1上添加兩個(gè)按鈕,一個(gè)名為btngetdisp,將其text屬性設(shè)置為“得到分辯率”;另一個(gè)按鈕名為btnsetdisp,text屬性為“設(shè)置分辯率”。然后在代碼窗口里添加以下代碼:

private const ccdevicename as short = 32
private const ccformname as short = 32
private const dm_pelswidth as integer = &h80000
private const dm_pelsheight as integer = &h100000

'刷新頻率常量
private const dm_displayfrequency as integer = &h400000

'調(diào)用api函數(shù)
private declare function enumdisplaysettings lib "user32" alias "enumdisplaysettingsa"
(byval lpszdevicename as integer, byval imodenum as integer, byref lpdevmode as devmode) as boolean
'調(diào)用api函數(shù)
private declare function changedisplaysettings lib "user32" alias "changedisplaysettingsa"
(byref lpdevmode as devmode, byval dwflags as integer) as integer

'定義結(jié)構(gòu)
private structure devmode
<vbfixedstring(ccdevicename), system.runtime.interopservices.marshalas
(system.runtime.interopservices.unmanagedtype.byvaltstr, sizeconst:=ccdevicename)> public dmdevicename as string
dim dmspecversion as short
dim dmdriverversion as short
dim dmsize as short
dim dmdriverextra as short
dim dmfields as integer
dim dmorientation as short
dim dmpapersize as short
dim dmpaperlength as short
dim dmpaperwidth as short
dim dmscale as short
dim dmcopies as short
dim dmdefaultsource as short
dim dmprintquality as short
dim dmcolor as short
dim dmduplex as short
dim dmyresolution as short
dim dmttoption as short
dim dmcollate as short
<vbfixedstring(ccformname), system.runtime.interopservices.marshalas
(system.runtime.interopservices.unmanagedtype.byvaltstr, sizeconst:=ccformname)> public dmformname as string
dim dmunusedpadding as short
dim dmbitsperpel as short
dim dmpelswidth as integer
dim dmpelsheight as integer
dim dmdisplayflags as integer
dim dmdisplayfrequency as integer
end structure

'改變分辯率過(guò)程,參數(shù)一寬度,參數(shù)二高度
private sub changedisp(byref iwidth as single, byref iheight as single)
dim blnworked as boolean
dim i as integer
dim devm as form1.devmode
i = 0
do
blnworked = enumdisplaysettings(0, i, devm)
i = i + 1
loop until (blnworked = false)

with devm
.dmfields = dm_pelswidth or dm_pelsheight or dm_displayfrequency
.dmpelswidth = iwidth
.dmpelsheight = iheight
'刷新頻率為85
.dmdisplayfrequency = 85
end with
call changedisplaysettings(devm, 0)
end sub

private sub btngetdisp_click(byval sender as system.object, byval e as system.eventargs) handles btngetdisp.click
dim x as short = system.windows.forms.screen.primaryscreen.bounds.width
dim y as short = system.windows.forms.screen.primaryscreen.bounds.height
msgbox("您的顯示器分辨率是" & x & " x " & y)
end sub

private sub btnsetdisp_click(byval sender as system.object, byval e as system.eventargs) handles btnsetdisp.click
if msgbox("您確認(rèn)要將顯示器分辨率改為1024x768嗎?", msgboxstyle.okcancel, "系統(tǒng)消息") = msgboxresult.ok then
'調(diào)用改變分辯率過(guò)程
changedisp(1024, 768)
end if
end sub

程序運(yùn)行如下圖所示,點(diǎn)擊設(shè)置分辯率,將會(huì)把顯示器分辨率改為1024x768,是不是很簡(jiǎn)單?注冊(cè)會(huì)員,創(chuàng)建你的web開(kāi)發(fā)資料庫(kù),
發(fā)表評(píng)論 共有條評(píng)論
用戶(hù)名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 巩留县| 萨嘎县| 苍山县| 汝阳县| 莆田市| 微博| 德江县| 兴国县| 梁山县| 扎兰屯市| 河源市| 万盛区| 获嘉县| 宁强县| 陆河县| 沂源县| 临江市| 庐江县| 廊坊市| 偃师市| 侯马市| 公安县| 仁怀市| 韶山市| 安康市| 怀柔区| 平邑县| 玉环县| 莱西市| 新晃| 渭源县| 工布江达县| 荥阳市| 平度市| 错那县| 克什克腾旗| 长宁县| 绥滨县| 霞浦县| 林口县| 仁寿县|