Paulie Posted July 14, 2006 Share Posted July 14, 2006 I Am writing an installer program that can install an application on many Desktops and laptops, problem is, there is a whole series of screen resolution differences messing up my mouseclicks, and the installer is crappy so no controlclicks work Is there a way to have autoit set the screen resolution, so i can make one standard that i can use on all comps? Link to comment Share on other sites More sharing options...
GaryFrost Posted July 14, 2006 Share Posted July 14, 2006 Here's what I use so I don't have to worry about screen res. Func _MouseClick($TITLE, $TEXT, $CONTROLID) Local $MouseCoordModeBAK = AutoItSetOption("MouseCoordMode", 2) Local $POS = ControlGetPos($TITLE, $TEXT, $CONTROLID) MouseMove($POS[0] + 10, $POS[1] + 10, 4) MouseDown("left") Sleep(500) MouseUp("left") AutoItSetOption("MouseCoordMode", $MouseCoordModeBAK) EndFunc ;==>_MouseClick SciTE for AutoItDirections for Submitting Standard UDFs Don't argue with an idiot; people watching may not be able to tell the difference. Link to comment Share on other sites More sharing options...
MHz Posted July 14, 2006 Share Posted July 14, 2006 If you are writing the installer, then why is it so crappy? Are you using a 3rd party installer or an Au3 script to install? Link to comment Share on other sites More sharing options...
Xenobiologist Posted July 14, 2006 Share Posted July 14, 2006 Hi,http://www.autoitscript.com/forum/index.ph...p;hl=resolutionSo long,Mega Scripts & functions Organize Includes Let Scite organize the include files Yahtzee The game "Yahtzee" (Kniffel, DiceLion) LoginWrapper Secure scripts by adding a query (authentication) _RunOnlyOnThis UDF Make sure that a script can only be executed on ... (Windows / HD / ...) Internet-Café Server/Client Application Open CD, Start Browser, Lock remote client, etc. MultipleFuncsWithOneHotkey Start different funcs by hitting one hotkey different times Link to comment Share on other sites More sharing options...
Bert Posted July 14, 2006 Share Posted July 14, 2006 Use this script. I use it to change the resolution to what I want. Works great! 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): [url="http://www.autoitscript.com/forum/index.php?showtopic=20121"]http://www.autoitscript.com/forum/index.php?showtopic=20121[/url] ; 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...
Paulie Posted July 14, 2006 Author Share Posted July 14, 2006 If you are writing the installer, then why is it so crappy? Are you using a 3rd party installer or an Au3 script to install?I am using Autoit to run through an installer for a 3rd party programand that program is crappy because it has messages in messages and stuff like that, and the interface is poor quality@vollyman & gafrostBoth scripts work, thanks 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