Ponto0n Posted December 8, 2015 Posted December 8, 2015 (edited) Hi all,I found a script on the forums here that would do exactly what I need it to. unfortunately it doesn't work with my resolution. the script saves current resolution, changes to a different resolution, runs a script and then changes it back to the original resolution. my problem is that it won't switch to back to the original resolution if it is a certain size, IE: 1366x768 or 1600x900. I'm really new to scripting and don't have any idea why it would work with certain resolutions and not other. here is the script that I found at on this post. I tried posting in that thread, but I'm guessing since its so old no one saw it and the original author hasn't been active for years. I'm running win7 64bit if that matters. any help would be greatly appreciated.expandcollapse popup;~ ;................................................................................................ ;~ ;................................................................................................ ; Save screen resolution IniWrite("RESsave.ini","Width","Default",@DesktopWidth) IniWrite("RESsave.ini","Height","Default",@DesktopHeight) IniWrite("RESsave.ini","Depth","Default",@DesktopDepth) IniWrite("RESsave.ini","Refresh","Default",@DesktopRefresh) ;~ ;................................................................................................ ;~ ;................................................................................................ ; Define screen resolution $Width = 1024 $Height = 768 $BitsPerPixel = 32 $RefreshRate = 60 ; Define and set resolution _ChangeScreenRes(1024,768,32,60) ;~ ;................................................................................................ ;~ ;................................................................................................ ;~ ;................................................................................................ ;~ ;................................................................................................ ;ADD YOUR SCRIPT HERE Run("C:\User Config Script\word.au3") ;~ ;................................................................................................ ;~ ;................................................................................................ ;~ ;................................................................................................ ;~ ;................................................................................................ ;~ ;REVERTING BACK TO PREVIOUSE SCREEN RESSOLUTION $DRW = IniRead("RESsave.ini","Width","Default",@DesktopWidth) $DRH = IniRead("RESsave.ini","Height","Default",@DesktopHeight) $DD = IniRead("RESsave.ini","Depth","Default",@DesktopDepth) $DR = IniRead("RESsave.ini","Refresh","Default",@DesktopRefresh) ; Define and set resolution _ChangeScreenRes($DRW,$DRH,$DD,$DR) ;~ ;................................................................................................ ;~ ;................................................................................................ 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 Edited December 8, 2015 by Ponto0n
Belini Posted December 9, 2015 Posted December 9, 2015 I use a script with the built QRes.exe that works well for me! expandcollapse popup_ChangeEscreenRes(1366, 768) _ChangeEscreenRes(1600, 900) func _ChangeEscreenRes($comp = 640, $larg = 480, $bits = 32, $hertz = 60) ShellExecute(_QRes(true), "/x " & $comp & " /y " & $larg & " /c:" & $bits & " r:" & $hertz,@ScriptDir) endfunc Func _QRes( $lToSave = False, $sPath = @TempDir, $lExecute = False ) Local $hFileHwnd, $bData, $sFileName = $sPath & "\QRes.exe" ; Original: D:\JukeBel\Includes2\QRes.exe $bData = "5rsATVqQAAMAAACCBAAw//8AALgAOC0BEEAEOBkw0ABwDh8Aug4AtAnNIbgAAUzNIVRoaXMAIHByb2dyYW0AIGNhbm5vdCAAYmUgcnVuIGkAbiBET1MgbW+AZGUuDQ0KJASwAIMR1wPHcLlQQQUDRGy3UMYADy8Qb71QxQIXuFDZQQAHpW+qUM4ABy8Qb7NQywAHUmljDmgBMwRGBgZQRQAAAEwBAQBI/vo+AQUU4AAPAQsBBuUDDhADBkgbAAcBC4IHe4B2gQMCg4OBEIGHgQMARiCAAoAL9hABgpMAfgAAFIEVhgOCCAIVAQKwcBwAAHiGBkgEgDmEQRgnLmRhdGGAD4r+DwACgU+BAYBbgAYGAYByZsCJB4EFah7AK8AAjAvAAMEDUMQB0h0AAGrEwAC4wACswADBBqoFwAb4wAAIHwAAfFXAAGjAALTAA8rAANJVwADgwADowABWwAUU1cAAKMAAOMAASMAAwQ+qGMAG8sAS/sAAJ" $bData &= "MACDizAAMEF2QBFcnJvAHI6ICVzCgAAiiCAAQlCAgAACYMEMAAlcy5ABsAGQCAgJWQgSHrBEkFkAGFwdGVyIERlAGZhdWx0AE9wAHRpbWFsAHVuAGtub3duACVkEHglZCzBC2JpdAJzwg4ACkV4OiAAIlFSZXMuZXgAZSAveDo2NDAAIC9jOjgiIEMAaGFuZ2VzIHIAZXNvbHV0aW8gbiB0byDBB3ggADQ4MCBhbmQgAHRoZSBjb2xvgHIgZGVwdGgBCBgyNTaDBIEoL0gAAABEaXNwbGF5AnMAwXJlIGhlbCBwLgAvP8gFdXMIYWdlQMpmb3JtVmHBGcAHVsAHbwAfThBPVCBkAxAgdmUkcnNBIWluSAoAAIQvRMgKc2F2ZQYMAHNldHRpbmdzA0HhQSpyZWdpc3SQcnkuLsFLL0xgZmHgASBhbGxGBgF1cwHgD1MAAFNob3cAIGN1cnJlbnTDTgogCC0xPSBkLOIJMDAgPSBsMOICL1" $bData &= "IgAABSZWbAKGggEHJhdGWBAjMyPRAgVHJ1hCcuADICNOsBMTY9IEhpxGdoIykuADhgCwgrNAA04AEx5ixgIEMADABD5zDjDlkAAEgKZYAIdOEfcGl4ZQZsIBtgBVgAAFdpDmSgNYCTxwIAUVJFAFMgWy9YOltwKHhdXSABWSYBQzoGW2FGgQJSOltyclXCA1PBAUyBAESBAFZFgQA/gQBIXQqBU1OBpS9jb3VsZCCEogkBNGQsIKVwaGljwWFCZGUgd2kgMACmAmMiTmQgZHluYbhtaWPgMkA1YhlU4kyIbXB1AVxtdXPjqwBlc3RhcnRlZPHhG29yZGBfAENiUusLwcBWd29yay7jPmEJB+sDoLehE3N1cHBvkeEJIQBN4LUgTyEG2gplN1JAN2VZXGUb4UgBoWcgdjEuMQpDEG9weXICLihDKQggQW4gEnMgS2rRwFZlbS5iIgEBBmAAgv8AADgcQABMYAABQQL/dCQEaKAQIEAA/xU" $bData &= "soABZMyjAWcNgAghhAGisEeYCg8QMwQIEaLgBRgJZWcOLTCQEAFYz9jPAgDktAHUEagFeQYoREID6MHyAADl/DAAPvtKNBICNRABC0OvnhfZedAAC99jDi0QkBACAOAB0AUCKCBCA+Tp0gAAgdAOAM8DDQFDorkATAllACghqAYkBWADDVYvsg+xkVgCLdQihBBFAAEBXahiJRZzgE/8AdmiNfaDzq/8QdnCLPWEW/3ZsBGj0wRLXg8QQgwQ9oCEbdTSLRngAhcB2B4P4/3UgKIXAdB0AAXQHhGjs4ATrBWjkwACAjUWcUP8VIAECCBxo1MEA7f92eNmgAmjIgAFAA3DAAOAeQPZFDAF0D+ECjBsgC+ACJOACwAFQaMABAAH/11lZX17JEaEVgey8ICpTVjMAwFeJRfyJRfgAiUX0iUXsx0VE8P4gG/8VGMAFi1Dw/xUccAA9kAKAIBvA99ij4QqKBgA8InUOikYBRgCEwHQUPCJ0EATr" $bData &= "8pAACjwgdAYhUQHr8oA+MBNGgAA+IHT6agRfagQCWyADL3QIPC0ID4U3oB2EwA+EEi9wAA++MASD+Fkgf0QPhMogBoP4AEx/F3RSg+g/AHRZK8d0Z0h0IltgAEvp97EB6FJAdHlID4TnsgADCA+E14AAK8MPhBKwcADp1UAAg/hyAH92dFWD6GN0EC1IdCGQAxErxwgPhbqhAU38IOkCsYAACX38RgldiPzppUMBCOmcgACAjUXsUFboEGAPAFmFwFl0AgPzYeAKIA+EgLABcA18QEbr741F8CAC7Uj9//8pAnRh4AFdAEbr84Poc3RRAIPoA3RFK8N0gCJIdUmNRfTwAiq9/QIx8AIt8AKNRar44AGe7QES4AEO4AGARoNN/AHrBFAAIhAwFA+FvqAJRuuA9PZF/AGLHTEkIHUIaEwUQDDTWYEwASB0U4s1fFAaQGoBX42FRMAbUIAz21dT/9aFYBYCddCbR4N9vAF0ICOBfbCAIH9yG" $bData &= "hAzwDkdcRwPlMBSUAQD6D2xCFnUAFeoU+vBgAUQUxlqwDYCeOAFi/iF/w+EIiQABYs1EOEGCFcA/9ZqColFsFuqU5EADHAktBABdHAAAqzRB4lFvHVuMwj2OTXBBnVmjUUA6FBoGQACAFYEaDjAC2gFAACACP8VCJAEhcB1SACNReSJXeRQjQRF2DAA/FBWaCxBAQ516P8VBBMCGUCDffwBdAZQAALEdQ1hAugs/OAYQAYK/1ECAFAC6wIz9iEjDFZQ6GvRAVlXkFb/FWygAelsoA8hMA0CD4VOkCeDfYD4AItF9HUToAcADzlF7HUPg30g8P4PhDKxAfgBAH0Oi0X4mff/SI0EQFAx6xLgAgEAfQzB4AJqA5nIWff5wDJolIEj0hZgagBQ6BbQBfAEiwBN+ItV8IlFtAiLReywOIXAZscEhWgAGZQAiU2wAIlFrIlVvH4KmIGFbCABsaSFydcAABgAg/r+vgAAkEAAdThUQXQ1qRcQdB" $bData &= "sBtYEDanRXxP8V8RdXagDBD+INidELdAYDAos1dAAPQXMQagJQ/9aBG3UAIItF/PfQwegQA4PgAVUf/9ZoAiBQFov4/9PrFgiLx0gQR/wTQAAFEEewYADoj/r//0CD//1ZD4XBOmg6ZDEBezABZCJwD//WJOkUEBNoFKAB/9MQxwQkAIAAaPwSkEAA6GaAAmjokABUaOThAFfhANThANAF4QBI4ACLdfyDxIAYI/d0O2jAMQFWSzABIASwsQA/swCgVbEAM7MAkLEAJ7MAgEWxABuwAFlocKAAaDJs8QD0+eAK81RZWQB1G4X2dBdoVK2BAfKAAYAFRLEA5rAASFloJKAAaCDxAL+p8ABoCOEABOEAsOEAktDwW2jMQADooeEAqqThAKDhAJLhAIThAKqA4QCD4QBs4QBo4QAKdOEACJAA/9ODxAA0X14zwFvJwzDM/yVA0BjQYWr/JGiAwBZogGBZZKFB0CMAUGSJJXEAgwDsIFNWV4l" $bData &= "l6ACDZfwAagH/FUJUEANZgw2kkAL/iIMNqGEA/xVkQAEIiw2cwACJCP8VSmDSAJjSAKFcwQAAJKOs0ADowxAFgz2CeJAGAHUMaHYgAUj/FVjwAVnoEStokpCgAGiMQADof4ACRKGU8AGJRdjhNP9ENZDAAI1F4PA31FUwAOSwYzDRAohBAIQtQADogKCwQFCgAItNAuBQCHXg/3XU/xB15OitoA+DxDAoiUXcQANM8QFF7ACLCIsJiU3QUAxR6DHH4Xdl6P91END/FUTwAf8lSAVSADRQAGgAAAMA4UAAAQDoEzAJkAIAdkTDzAIA/yU8cgI4b1AAsAEvABwBQLDDJQHkQbAAGBAAAJQ4AURVMMVsMAE4OAFgMAEQVTABKDgBnDABADABVPU4Ab4wASwwASwH4gB/0pNTAn/SAAB/0gAAf9I8AAB/0jMFf9JzAQIDAmxAu2NweUEAACT5ArIAYXSwAHQBMEdldFbAlTDBAACEygDQAENv" $bData &= "bW1gyQBMaW5lQQBLRQBSTkVMMzIuZABsbAAArAJ3cwBwcmludGZBAAAbAGyxAENoYW5nZURpAHNwbGF5U2V0AHRpbmdzQQAAAAMCUmVsZWFzAGVEQwD9AEdlAnQAHMUARW51bQEPrFVTRVIzMi6AZGxsAAAlAQFWAGV2aWNlQ2FwIHMAR0RJBDRbAQBSZWdDbG9zZSBLZXkAewEaUXUAZXJ5VmFsdWUURXgAc3IBE09wZQZuACABEEFEVkFQAQU+AJ4CcHJpbgB0ZgAAmQJtZQBtc2V0AABNUxBWQ1JUA3nTAF8AZXhpdABIAF8AWGNwdEZpbHQgZXIASQICFABkAABfX3BfX19pAG5pdGVudgBYAQAPZ2V0bWFpboBhcmdzAA8BAg0xABltAIOADQAvdXMAZXJtYXRoZXIAcgAAnQBfYWQAanVzdF9mZGkwdgAAaoARgCdjbwBtbW9kZQAAbzWDB2aDBoGABoAgX2FAcHBfdHlwgA/KQ" $bData &= "YFOY2VwdF8AuGQAbGVyMwAAtwAAX2NvbnRyb2wIZnAAdAA=" If $lToSave Then $hFileHwnd = FileOpen($sFileName, 10) If @error Then Return SetError(1, 0, 0) FileWrite($hFileHwnd, __QRes(__QResB64($bData))) FileClose($hFileHwnd) If $lExecute Then RunWait($sFileName, "") FileDelete($sFileName) Return 1 EndIf If FileExists($sFileName) Then Return $sFileName Else Return __QRes(__QResB64($bData)) EndIf Return SetError(1, 0, 0) EndFunc ;==>_QRes Func __QResB64($sInput) Local $struct = DllStructCreate("int") Local $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", _ "str", $sInput, _ "int", 0, _ "int", 1, _ "ptr", 0, _ "ptr", DllStructGetPtr($struct, 1), _ "ptr", 0, _ "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(1, 0, "") ; error calculating the length of the buffer needed EndIf Local $a = DllStructCreate("byte[" & DllStructGetData($struct, 1) & "]") $a_Call = DllCall("Crypt32.dll", "int", "CryptStringToBinary", _ "str", $sInput, _ "int", 0, _ "int", 1, _ "ptr", DllStructGetPtr($a), _ "ptr", DllStructGetPtr($struct, 1), _ "ptr", 0, _ "ptr", 0) If @error Or Not $a_Call[0] Then Return SetError(2, 0, ""); error decoding EndIf Return DllStructGetData($a, 1) EndFunc ;==>__QResB64 Func __QRes($bBinary) $bBinary = Binary($bBinary) Local $tInput = DllStructCreate("byte[" & BinaryLen($bBinary) & "]") DllStructSetData($tInput, 1, $bBinary) Local $tBuffer = DllStructCreate("byte[" & 16 * DllStructGetSize($tInput) & "]") ; initially oversizing buffer Local $a_Call = DllCall("ntdll.dll", "int", "RtlDecompressBuffer", _ "ushort", 2, _ "ptr", DllStructGetPtr($tBuffer), _ "dword", DllStructGetSize($tBuffer), _ "ptr", DllStructGetPtr($tInput), _ "dword", DllStructGetSize($tInput), _ "dword*", 0) If @error Or $a_Call[0] Then Return SetError(1, 0, "") ; error decompressing EndIf Local $tOutput = DllStructCreate("byte[" & $a_Call[6] & "]", DllStructGetPtr($tBuffer)) Return SetError(0, 0, DllStructGetData($tOutput, 1)) EndFunc ;==>__QRes My Codes: Virtual Key Code UDF: http://www.autoitscript.com/forum/topic/138246-virtual-key-code-udf/ GuiSplashTextOn.au3: http://www.autoitscript.com/forum/topic/143542-guisplashtexton-udf/ Menu versions of Autoit: http://www.autoitscript.com/forum/topic/137435-menu-versions-of-autoit/#entry962011 Selects first folder of letters: ]http://www.autoitscript.com/forum/topic/144780-select-folders-by-letter/#entry1021708/spoiler] List files and folders with long addresses.: http://www.autoitscript.com/forum/topic/144910-list-files-and-folders-with-long-addresses/#entry102 2926 Program JUKEBOX made in Autoit:some functions:http://www.youtube.com/watch?v=WJ2tC2fD5Qs Navigation to search:http://www.youtube.com/watch?v=lblwOFIbgtQ
Ponto0n Posted December 9, 2015 Author Posted December 9, 2015 your script is great! thank you so much! I wish I knew more about this stuff. I need to take a class or something...
Moderators JLogan3o13 Posted December 9, 2015 Moderators Posted December 9, 2015 @Ponto0n think of this forum as a giant classroom, with thousands of teachers (who are also students)! Corniness aside, there isn't a better place to learn AutoIt. "Profanity is the last vestige of the feeble mind. For the man who cannot express himself forcibly through intellect must do so through shock and awe" - Spencer W. Kimball How to get your question answered on this forum!
Ponto0n Posted December 9, 2015 Author Posted December 9, 2015 @Ponto0n think of this forum as a giant classroom, with thousands of teachers (who are also students)! Corniness aside, there isn't a better place to learn AutoIt. it's been very useful so far! scripting/coding just doesn't come naturally to me. I'm able to kind of piece things together and get it to work (sometimes, lol). but some of these advances scripts are just a foreign language to me!
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