VB6中改變屏幕的分辨率和刷新頻率!!!
2024-07-21 02:21:01
供稿:網(wǎng)友
 
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 //屏幕的刷新頻率
 '
 '聲明:
 ' 調(diào)用該函數(shù)時(shí)要確定所設(shè)置的值在系統(tǒng)所允許的設(shè)置范圍內(nèi),比如系統(tǒng)的最大刷新頻率位80,而你
 ' 用把lngfrequency設(shè)位85,這樣將帶來無法預(yù)測的后果。
 '------------------------------------------------------------------------------------------
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