zeffy Posted May 2, 2010 Share Posted May 2, 2010 It works fine when I use _ChangeScreenResEx(1, 800, 600) but it sets @error to 1, and doesnt do anything. If I use _ChangeScreenResEx(1, 1366, 768) which is my default screen resolution, can someone help me with this? Thanks, Zef. Link to comment Share on other sites More sharing options...
zeffy Posted May 2, 2010 Author Share Posted May 2, 2010 26 views and no replies? please i really need help D: Link to comment Share on other sites More sharing options...
martin Posted May 2, 2010 Share Posted May 2, 2010 26 views and no replies? please i really need help D:Difficult to help because I have no idea what _ChangeScreenResEx is so you need to either show us the code or at least give a link. Then maybe tell us what OS you are using. Serial port communications UDF Includes functions for binary transmission and reception.printing UDF Useful for graphs, forms, labels, reports etc.Add User Call Tips to SciTE for functions in UDFs not included with AutoIt and for your own scripts.Functions with parameters in OnEvent mode and for Hot Keys One function replaces GuiSetOnEvent, GuiCtrlSetOnEvent and HotKeySet.UDF IsConnected2 for notification of status of connected state of many urls or IPs, without slowing the script. Link to comment Share on other sites More sharing options...
zeffy Posted May 2, 2010 Author Share Posted May 2, 2010 Difficult to help because I have no idea what _ChangeScreenResEx is so you need to either show us the code or at least give a link. Then maybe tell us what OS you are using. Oh, sorry I posted this thread really early in the morning, here's the code. expandcollapse popup;=============================================================================== ; Function Name: _ChangeScreenResEx() ; Description: Changes the current screen geometry, colour and refresh rate. ; Version: 1.0.0.0 ; Parameter(s): $i_DisplayNum - Display to change, starting at 1 ; $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): ; Author(s): Original code - psandu.ro, PartyPooper ; Modifications - bobchernow ;=============================================================================== Func _ChangeScreenResEx($i_DisplayNum = 1, $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 $s_Display $s_Display = "\\.\Display" & $i_DisplayNum Local $B = DllCall("user32.dll", "int", "EnumDisplaySettings", "ptr", 0, "int", 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", "ChangeDisplaySettingsEx","str", $s_Display, "ptr", DllStructGetPtr($DEVMODE), "hwnd", 0, "dword", $CDS_TEST, "lparam", 0) 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", "ChangeDisplaySettingsEx","str", $s_Display, "ptr", DllStructGetPtr($DEVMODE), "hwnd", 0, "dword", $CDS_UPDATEREGISTRY, "lparam", 0) 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;==>_ChangeScreenResEx And I'm on Windows 7 Ultimate 64-bit Link to comment Share on other sites More sharing options...
zeffy Posted May 2, 2010 Author Share Posted May 2, 2010 bump, I posted what you said you needed to help. Link to comment Share on other sites More sharing options...
MvGulik Posted May 3, 2010 Share Posted May 3, 2010 (edited) whatever Edited February 7, 2011 by MvGulik "Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions.""The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014) "Believing what you know ain't so" ... Knock Knock ... Link to comment Share on other sites More sharing options...
zeffy Posted May 3, 2010 Author Share Posted May 3, 2010 DLLcaling not my thing, but ...There are two SetError() in that code. And both set it to 1.Change the first one to SetError(91) and the lower one to SetError(92). Than rerun you code. And report back the error value you got that time.Might narrow it down a bit.---Change the first to SetError(91,@extended), and include the extended value to in case you got a 91 error.Thanks for replying, I did what you said, and @error returned 92 Link to comment Share on other sites More sharing options...
MvGulik Posted May 3, 2010 Share Posted May 3, 2010 (edited) whatever Edited February 7, 2011 by MvGulik "Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions.""The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014) "Believing what you know ain't so" ... Knock Knock ... Link to comment Share on other sites More sharing options...
zeffy Posted May 3, 2010 Author Share Posted May 3, 2010 (edited) 92. okLooking at MSDN:ChangeDisplaySettingsEx, section: Return Value.There it lists the possible return states.By changing SetError(92) to SetError(92,$ you can get the value that was actually returned by the dllcall. (as @extended value)And that value can be used to Identity the failure reason ... one problem though.This UDF Code only contains 2 of the possible 7 returned states. And I don't know where or how to find those others.Post that value and hopefully someone else might tell you which on that is.$B = -2 Edited May 3, 2010 by zeffy Link to comment Share on other sites More sharing options...
MvGulik Posted May 3, 2010 Share Posted May 3, 2010 (edited) whatever Edited February 7, 2011 by MvGulik "Straight_and_Crooked_Thinking" : A "classic guide to ferreting out untruths, half-truths, and other distortions of facts in political and social discussions.""The Secrets of Quantum Physics" : New and excellent 2 part documentary on Quantum Physics by Jim Al-Khalili. (Dec 2014) "Believing what you know ain't so" ... Knock Knock ... Link to comment Share on other sites More sharing options...
zeffy Posted May 3, 2010 Author Share Posted May 3, 2010 Public Const DISP_CHANGE_SUCCESSFUL = 0Public Const DISP_CHANGE_RESTART = 1Public Const DISP_CHANGE_FAILED = -1Public Const DISP_CHANGE_BADMODE = -2 -> The graphics mode is not supported.Public Const DISP_CHANGE_NOTUPDATED = -3Public Const DISP_CHANGE_BADFLAGS = -4Public Const DISP_CHANGE_BADPARAM = -5Ps: I'm off. well, that's disappointing, i had another idea to do the same thing. Thanks for the help. 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