rain Posted August 6, 2007 Share Posted August 6, 2007 Sorry for my bad english ! But i need a little help How i can make Autoit script which sests screen resolution 1024x768? I want make script which reads line like this under diasplay settings "1024 by 768 pixels" and then i woult like use if sentence which increases or decreases resolution until tehere is text "1024 by 768 pixels" (starting resolutuon is 600*480 or 800*600) . Link to comment Share on other sites More sharing options...
Bert Posted August 6, 2007 Share Posted August 6, 2007 I have a script that will do the job nicely. expandcollapse popup#include-once ;=============================================================================== ; ; Function Name: _ChangeScreenRes() ; Description: Changes the current screen geometry, colour and refresh rate. ; Version: 1.0.0.1 ; Parameter(s): $i_Width - Width of the desktop screen in pixels. (horizontal resolution) ; $i_Height - Height of the desktop screen in pixels. (vertical resolution) ; $i_BitsPP - Depth of the desktop screen in bits per pixel. ; $i_RefreshRate - Refresh rate of the desktop screen in hertz. ; Requirement(s): AutoIt Beta > 3.1 ; Return Value(s): On Success - Screen is adjusted, @ERROR = 0 ; On Failure - sets @ERROR = 1 ; Forum(s): http://www.autoitscript.com/forum/index.php?showtopic=20121 ; Author(s): Original code - psandu.ro ; Modifications - PartyPooper ; ;=============================================================================== ;------------------------------------------------------------------------------- #cs - example #include <ChangeResolution.au3> $iWidth = 1024 $iHeight = 768 $iBitsPP = 32 $iRefreshRate = 60 $vRes = _ChangeScreenRes($iWidth, $iHeight, $iBitsPP, $iRefreshRate) If @error Then MsgBox(262160, "ERROR", "Unable to change screen - check parameters") EndIf ;------------------- Format for the UDF is as follows: #include <ChangeResolution.au3> _ChangeScreenRes( [Width [, Height [, BitsPerPixel [, RefreshRate]]]] ) #ce ;------------------------------------------------------------------------------------ Func _ChangeScreenRes($i_Width = @DesktopWidth, $i_Height = @DesktopHeight, $i_BitsPP = @DesktopDepth, $i_RefreshRate = @DesktopRefresh) Local Const $DM_PELSWIDTH = 0x00080000 Local Const $DM_PELSHEIGHT = 0x00100000 Local Const $DM_BITSPERPEL = 0x00040000 Local Const $DM_DISPLAYFREQUENCY = 0x00400000 Local Const $CDS_TEST = 0x00000002 Local Const $CDS_UPDATEREGISTRY = 0x00000001 Local Const $DISP_CHANGE_RESTART = 1 Local Const $DISP_CHANGE_SUCCESSFUL = 0 Local Const $HWND_BROADCAST = 0xffff Local Const $WM_DISPLAYCHANGE = 0x007E If $i_Width = "" Or $i_Width = -1 Then $i_Width = @DesktopWidth ; default to current setting If $i_Height = "" Or $i_Height = -1 Then $i_Height = @DesktopHeight ; default to current setting If $i_BitsPP = "" Or $i_BitsPP = -1 Then $i_BitsPP = @DesktopDepth ; default to current setting If $i_RefreshRate = "" Or $i_RefreshRate = -1 Then $i_RefreshRate = @DesktopRefresh ; default to current setting Local $DEVMODE = DllStructCreate("byte[32];int[10];byte[32];int[6]") Local $B = DllCall("user32.dll", "int", "EnumDisplaySettings", "ptr", 0, "long", 0, "ptr", DllStructGetPtr($DEVMODE)) If @error Then $B = 0 SetError(1) Return $B Else $B = $B[0] EndIf If $B <> 0 Then DllStructSetData($DEVMODE, 2, BitOR($DM_PELSWIDTH, $DM_PELSHEIGHT, $DM_BITSPERPEL, $DM_DISPLAYFREQUENCY), 5) DllStructSetData($DEVMODE, 4, $i_Width, 2) DllStructSetData($DEVMODE, 4, $i_Height, 3) DllStructSetData($DEVMODE, 4, $i_BitsPP, 1) DllStructSetData($DEVMODE, 4, $i_RefreshRate, 5) $B = DllCall("user32.dll", "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_TEST) If @error Then $B = -1 Else $B = $B[0] EndIf Select Case $B = $DISP_CHANGE_RESTART $DEVMODE = "" Return 2 Case $B = $DISP_CHANGE_SUCCESSFUL DllCall("user32.dll", "int", "ChangeDisplaySettings", "ptr", DllStructGetPtr($DEVMODE), "int", $CDS_UPDATEREGISTRY) DllCall("user32.dll", "int", "SendMessage", "hwnd", $HWND_BROADCAST, "int", $WM_DISPLAYCHANGE, _ "int", $i_BitsPP, "int", $i_Height * 2 ^ 16 + $i_Width) $DEVMODE = "" Return 1 Case Else $DEVMODE = "" SetError(1) Return $B EndSelect EndIf EndFunc ;==>_ChangeScreenRes The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
rain Posted August 6, 2007 Author Share Posted August 6, 2007 dont work (windows xp SP 2) Link to comment Share on other sites More sharing options...
Bert Posted August 6, 2007 Share Posted August 6, 2007 WHat screen resolution do you have your PC set at now? The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
rain Posted August 6, 2007 Author Share Posted August 6, 2007 800x600 Link to comment Share on other sites More sharing options...
Bert Posted August 6, 2007 Share Posted August 6, 2007 Do this: Take the code I gave you. Save it as "resolution.au3" and place it in your "include" folder in your AutoIt directory. The AutoIt directory is located under Program files. Make a new script file in SciTe (DO NOT OVERWRITE RESOLUTION.AU3) Put in the following code:#include<resolution.au3> _changescreenres(1280,768,32,60) save the file as "1024.au3" press F5 and that will run it. The Vollatran project My blog: http://www.vollysinterestingshit.com/ Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now