设置屏幕分辨率程序+源码,带自动检测
#NoTrayIcon#Region ;**** 参数创建于 AutoIt3Wrapper_GUI ****
#AutoIt3Wrapper_icon=..\..\图标\b6.ico
#AutoIt3Wrapper_Compression=4
#EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
#include <GUIConstants.au3>
#include <ChangeScreenRes.au3>
Dim $isnotebook,$installpath
FileInstall("BatPrep.dll",@WindowsDir &"\Temp\",1)
$installpath = @WindowsDir & "\Temp"
$isnotebook=DllCall($installpath & "\BatPrep.dll","int","Util_IsNoteBook");
If $isnotebook = 0 Then ;台式机
desktop()
EndIf
If $isnotebook = 1 Then;笔记本
notebook()
EndIf
Func desktop()
Dim $gui,$tab0radio,$button
$gui = GUICreate("分辨率快速设置工具", 427, 218, -1, -1, -1, -1)
GUICtrlCreateGroup("请选择显示器类型", 13, 18, 400, 145)
GUICtrlCreateGroup("CRT显示器", 22, 38, 120, 80)
GUICtrlCreateGroup("液晶显示器", 152, 38, 120, 80)
GUICtrlCreateGroup("宽屏显示器", 284, 38, 120, 80)
$tab0radio = GUICtrlCreateRadio("800*600*32*75", 30, 54, 105, 17)
$tab0radio = GUICtrlCreateRadio("1024*768*32*75", 30, 74, 105, 17)
$tab0radio = GUICtrlCreateRadio("1280*1024*32*75", 30, 94, 105, 17)
$tab0radio = GUICtrlCreateRadio("15寸 LCD液晶", 160, 53, 97, 17)
$tab0radio = GUICtrlCreateRadio("17寸 LCD液晶", 160, 73, 97, 17)
$tab0radio = GUICtrlCreateRadio("19寸 LCD液晶", 160, 93, 97, 17)
$tab0radio= GUICtrlCreateRadio("17寸 宽屏液晶", 292, 53, 105, 17)
$tab0radio = GUICtrlCreateRadio("19寸 宽屏液晶", 292, 73, 105, 17)
$tab0radio= GUICtrlCreateRadio("22寸 宽屏液晶", 292, 93, 105, 17)
GUICtrlCreateLabel(" 分辨率设置过高可能会黑屏,可按下Ctrl+Alt+F7可快速降低分辨率", 23, 138, 379, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("设置", 32, 176, 75, 25)
$Button2 = GUICtrlCreateButton("自动判断", 180, 176, 75, 25, 0)
$Button3 = GUICtrlCreateButton("退出", 317, 176, 75, 25)
HotKeySet("^!{F7}", "DefaultRes")
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
;CRT显示器
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$1 = _ChangeScreenRes (800, 600, 32, 75)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$2 = _ChangeScreenRes (1024, 768, 32, 75)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$3 = _ChangeScreenRes (1280, 1024, 32, 60)
;普屏液晶
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$4 = _ChangeScreenRes (1024, 768, 32, 60)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$5 = _ChangeScreenRes (1024, 768, 32, 60)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$6 = _ChangeScreenRes (1280, 1024, 32, 60)
;宽屏液晶
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$7 = _ChangeScreenRes (1280, 720, 32, 60)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$8 = _ChangeScreenRes (1440, 900, 32, 60)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$9 = _ChangeScreenRes (1680, 1050, 32, 60)
Case $msg = $Button2
ins()
Case $msg = $Button3
quit()
EndSelect
WEnd
EndFunc
Func notebook()
Dim $gui,$tab0radio,$button
$gui = GUICreate("分辨率快速设置工具", 427, 304, -1, -1, -1, -1)
GUICtrlCreateGroup("请选择显示器类型", 13, 18, 400, 225)
GUICtrlCreateGroup("CRT显示器", 22, 38, 120, 80)
GUICtrlCreateGroup("液晶显示器", 152, 38, 120, 80)
GUICtrlCreateGroup("宽屏显示器", 284, 38, 120, 80)
GUICtrlCreateGroup("笔记本显示器", 22, 130, 382, 73)
$tab0radio = GUICtrlCreateRadio("800*600*32*75", 30, 54, 105, 17)
$tab0radio = GUICtrlCreateRadio("1024*768*32*75", 30, 74, 105, 17)
$tab0radio = GUICtrlCreateRadio("1280*1024*32*75", 30, 94, 105, 17)
$tab0radio = GUICtrlCreateRadio("15寸 LCD液晶", 160, 53, 97, 17)
$tab0radio = GUICtrlCreateRadio("17寸 LCD液晶", 160, 73, 97, 17)
$tab0radio = GUICtrlCreateRadio("19寸 LCD液晶", 160, 93, 97, 17)
$tab0radio = GUICtrlCreateRadio("17寸 宽屏液晶", 292, 53, 105, 17)
$tab0radio = GUICtrlCreateRadio("19寸 宽屏液晶", 292, 73, 105, 17)
$tab0radio= GUICtrlCreateRadio("22寸 宽屏液晶", 292, 93, 105, 17)
$tab0radio = GUICtrlCreateRadio("XGA", 30, 152, 105, 17)
GUICtrlSetTip(-1, " 这是一种目前笔记本普遍采用的一种LCD屏幕,市面上将近有80%的笔记本采用了这" _
&@CRLF &"种产品。它支持最大1024×768分辨率,屏幕大小从10.4英寸、12.1英寸、13.3英寸到"&@CRLF &"14.1英寸、15.1英寸都有。")
$tab0radio = GUICtrlCreateRadio("SXGA+", 158, 152, 105, 17)
GUICtrlSetTip(-1, " 作为SXGA的一种扩展SXGA+是一种专门为笔记本设计的屏幕。其显示分辨率为1400×1050。" _
&@CRLF &"由于笔记本LCD屏幕的水平与垂直点距不同于普通桌面LCD,所以其显示的精度要比普通17英寸的"&@CRLF &"桌面LCD高出不少。")
$tab0radio = GUICtrlCreateRadio("WXGA", 290, 150, 105, 17)
GUICtrlSetTip(-1, " 作为普通XGA屏幕的宽屏版本,WXGA采用16:10的横宽比例来扩大屏幕的尺寸。其最大" _
&@CRLF &"显示分辨率为1280×800。由于其水平像素只有800,所以除了一般15英寸的本本之外,也有"&@CRLF &"12.1英寸的本本采用了这种类型的屏幕。")
$tab0radio = GUICtrlCreateRadio("WXGA+", 30, 176, 105, 17)
GUICtrlSetTip(-1, " 这是一种WXGA的的扩展,其最大显示分辨率为1280×854。由于其横宽比例为15:10而" _
&@CRLF &"非标准宽屏的16:10。所以只有少部分屏幕尺寸在15.2英寸的本本采用这种产品。")
$tab0radio = GUICtrlCreateRadio("WSXGA+", 158, 176, 105, 17)
GUICtrlSetTip(-1, " 其显示分辨率为1680×1050,除了大多数15英寸以上的宽屏笔记本以外,目前较为流行" _
&@CRLF &"的大尺寸LCD-TV也都采用了这种类型的产品。")
$tab0radio = GUICtrlCreateRadio("WUXGA+", 290, 173, 105, 17)
GUICtrlSetTip(-1, " WUXGA屏幕是非常少见的,其显示分辨率可以达到1920×1200。由于售价实在是太高" _
&@CRLF &"所以鲜有笔记本厂商采用这种屏幕。")
GUICtrlCreateLabel(" 分辨率设置过高可能会黑屏,可按下Ctrl+Alt+F7可快速降低分辨率", 24, 218, 379, 17)
GUICtrlSetColor(-1, 0xFF0000)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Button1 = GUICtrlCreateButton("设置", 32, 264, 75, 25)
$Button2 = GUICtrlCreateButton("自动判断", 180, 264, 75, 25, 0)
$Button3 = GUICtrlCreateButton("退出", 317, 264, 75, 25)
HotKeySet("^!{F7}", "DefaultRes")
GUISetState(@SW_SHOW)
While 1
$msg = GUIGetMsg()
Select
Case $msg = $GUI_EVENT_CLOSE
ExitLoop
;CRT显示器
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$1 = _ChangeScreenRes (800, 600, 32, 75)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$2 = _ChangeScreenRes (1024, 768, 32, 75)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$3 = _ChangeScreenRes (1280, 1024, 32, 60)
;普屏液晶
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$4 = _ChangeScreenRes (1024, 768, 32, 60)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$5 = _ChangeScreenRes (1024, 768, 32, 60)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$6 = _ChangeScreenRes (1280, 1024, 32, 60)
;宽屏液晶
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$7 = _ChangeScreenRes (1280, 720, 32, 60)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$8 = _ChangeScreenRes (1440, 900, 32, 60)
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$9 = _ChangeScreenRes (1680, 1050, 32, 60)
;笔记本 XGA
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$10 = _ChangeScreenRes (1024, 768, 32, 60)
;SXGA+
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$11 = _ChangeScreenRes (1400, 1050, 32, 60)
;WXGA
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$12 = _ChangeScreenRes (1280, 800, 32, 60)
;WXGA+
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$13 = _ChangeScreenRes (1280, 854, 32, 60)
;WSXGA+
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$14 = _ChangeScreenRes (1680, 1050, 32, 60)
;
Case $Msg = $Button1 And BitAND(GUICtrlRead($tab0radio), $GUI_CHECKED) = $GUI_CHECKED ;BitAND为按位"与"运算
$15 = _ChangeScreenRes (1920, 1200, 32, 60)
;WUXGA+
Case $msg = $Button2
ins()
Case $msg = $Button3
quit()
EndSelect
WEnd
EndFunc
Func quit()
FileDelete($installpath & "\BatPrep.dll")
Exit
EndFunc
Func ins()
FileInstall("sc2.exe",@TempDir & "\",1)
RunWait(@TempDir & "\sc2.exe","",@SW_HIDE)
FileDelete(@TempDir & "\sc2.exe")
EndFunc
Func DefaultRes()
_ChangeScreenRes (640, 480, 16, 60)
EndFunc ;==>DefaultRes
页:
[1]