Search the Community
Showing results for tags 'Display'.
-
_DLLStructDisplay While working on debugging a project a while back, I was looking for better ways to debug the code. And voila, here it is. Anyway, this function displays the contents of your DLLStruct's in a ListView format (placing the items in an array and utilizing _ArrayDisplay). IMPORTANT: You must supply the string EXACTLY as it was used to set up the structure (although you can add descriptions after the datatypes if they aren't already there). The string requirement might seem like one more extra step, but without it the function wouldn't work (and you're debugging would be much harder). The code is smart enough to split items into subitems (based on [#]'s found), and will display the description with {sub item #x}). Also - the behaviour with GINORMOUS pieces of data is unknown - this is best used with smaller structures! NOTE: One thing you might notice about structures is alignment has alot to do with where items are placed in the structure. The default is '8', which means that everything is aligned on a boundary equally divisible by itself (char being 1 byte is aligned anywhere, int's being 4 bytes, are aligned on offsets divisible by 4, double's and int64's both are aligned on offsets equally divisible by 8) HOWEVER: a prefix of 'align ##' can change this behavior so that the data can be 'misaligned' so to speak, to the specified alignment # (see AutoIT Help info for DLLStructCreate) Update Log: Download the ZIP Here Ascend4nt's AutoIT Code License agreement: While I provide this source code freely, if you do use the code in your projects, all I ask is that: If you provide source, keep the header as I have put it, OR, if you expand it, then at least acknowledge me as the original author, and any other authors I creditIf the program is released, acknowledge me in your credits (it doesn't have to state which functions came from me, though again if the source is provided - see #1)The source on it's own (as opposed to part of a project) can not be posted unless a link to the page(s) where the code were retrieved from is provided and a message stating that the latest updates will be available on the page(s) linked to.Pieces of the code can however be discussed on the threads where Ascend4nt has posted the code without worrying about further linking.
-
Hello, it has been a long time since I have posted here I am working on an AutoIt project where I need to enable to user to interactively choose any point or coordinate on the screen... something like a big overlay where the user can click anywhere on the screen to select that point. @UEZ's screenshot tool may have something similar to what I need: I just checked the source code for the tool and I see that the Mark_Area function has a part in selecting the area to screenshot, I tried to figure out how it works but it is simply too complex and long... So I was wondering if there were any examples of interactively selecting points on a screen? Maybe an UDF that I can just use in my script to make the whole thing a matter of adding few lines Thank you for the replies in advance!
- 4 replies
-
- point picker
- coordinate
-
(and 3 more)
Tagged with:
-
Display results of "getElementsByClassName"
Eggie6 posted a topic in AutoIt General Help and Support
Hi all, I have a script #include <IE.au3> Local $oIE = _IEAttach("anythinghere") $tags = $oIE.document.GetElementsByTagName("div") $oCollection = $oIE.document.getElementsByClassName("x-panel-btn-td") MsgBox(0, "", $oCollection.length) which shows 8 results, how can i see what those results are, and i need also to get ID of 4th in a row of them Please help- 2 replies
-
- getelementsbyclassname
- results
-
(and 1 more)
Tagged with:
-
how to get the system display language
nacerbaaziz posted a topic in AutoIt General Help and Support
Hi dear I have a question about the display language of the system How can I get the current display language and how can I change it by autoit Of course, if this is possible Greetings to all and hope you help me -
Hello, I want to use the "_ChangeScreenResEx()" UDF for changing my display settings from 1680*1050 to 1280*800. When I use it the display change to 1280*800 but with Intel Drivers, Scaling option change : Maintain display Scaling become Center Image. Here my Main program #include <.\_ChangeResolutionEx.au3> Global $Config = @ScriptDir & "\ChangeResolution.ini" Global $aSection = IniReadSectionNames($Config) Global $Moniteur,$Largeur,$Hauteur,$Profondeur,$Refresh for $i = 1 to $aSection[0] Step 1 $Moniteur = Number($i) $Largeur = Number(IniRead($Config,$i,"Width","1680")) $Hauteur = Number(IniRead($Config,$i,"Height","1050")) $Profondeur = Number(IniRead($Config,$i,"Bits","32")) $Refresh = Number(IniRead($Config,$i,"Refresh","60")) _ChangeScreenResEx($Moniteur,$Largeur,$Hauteur,$Profondeur,$Refresh) Sleep(1000) Next _ChangeScreenResEx() #include-once ;=============================================================================== ; 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 Any idea how to get around this problem ? thanks for your answer.
-
Hi guys! How are you? Hope you're fine I'm trying to use SQLite for managing some data, and, I would like to display my "retrieved" data, but I'm trying to do a select from 2 table, and seems to not work properly... What I'd like to do is retrieve data from 2 tables and display in a listview... I tried with: Local $aRisultato, $iRighe, $iColonne, $iRVal $iRval = _SQLite_GetTable2d($hDatabase, "SELECT * FROM Magazzino_Rockwell, Magazzino_Siemens;", $aRisultato, $iRighe, $iColonne) If $iRVal = $SQLITE_OK Then ;_SQLite_Display2DResult($aRisultato) _ArrayDisplay($aRisultato) EndIf ... but it displays a single record 41 times, and it does this thing for every record in the database... What do you need to help me? Thanks EDIT: Managed with a double If and double query like this: $iRval = _SQLite_GetTable2d($hDatabase, "SELECT * FROM Magazzino_Rockwell;", $aRisultato, $iRighe, $iColonne) If $iRVal = $SQLITE_OK Then Local $aRisultatoRockwell = $aRisultato $iRval = _SQLite_GetTable2d($hDatabase, "SELECT * FROM Magazzino_Siemens;", $aRisultato, $iRighe, $iColonne) If $iRVal = $SQLITE_OK Then _ArrayConcatenate($aRisultato, $aRisultatoRockwell) Local $i, $sRiga, $s_LV_Item For $i = 1 To Ubound($aRisultato) - 1 $sRiga = $aRisultato[$i][0] & "|" & _ $aRisultato[$i][1] & "|" & _ $aRisultato[$i][2] & "|" & _ $aRisultato[$i][3] & "|" & _ $aRisultato[$i][4] & "|" & _ $aRisultato[$i][5] & "|" & _ $aRisultato[$i][6] & "|" & _ $aRisultato[$i][7] & "|" & _ $aRisultato[$i][8] & "|" & _ $aRisultato[$i][9] & "|" & _ $aRisultato[$i][10] & "|" & _ $aRisultato[$i][11] $s_LV_Item = GUICtrlCreateListViewItem($sRiga, $lv_Lista) Next And so, the listview is created If anyone has another more efficient way, I'm here Thanks guys
-
Hello all! I'm trying to figure out how to display the contents of my Microsoft Outlooks inbox inside of an AutoIt GUI. So far, I've managed to embed it perfectly and the website looks fantastic, but whenever I click on a message in my inbox, I can't view it. I also can't create new messages or search my inbox. I figured this was probably an ActiveX or JavaScript incompatibility. Any ideas? Local $oIE = _IECreateEmbedded() $browserObj = GUICtrlCreateObj($oIE, 20, 60, 780, 580) _IENavigate($oIE, "https://outlook.office.com/owa/#path=/mail")
-
In my code, I'm using GUICtrlCreateLabel to create a label and GUICtrlSetFont to set the font. Example... $SELlbl = GUICtrlCreateLabel("Hello World", 8, 8, 286, 24) GUICtrlSetFont(-1, 12, 800, 0, "MS Sans Serif")This works in my GUI unless display settings are changed in Windows 7 from 100% to 125-150%. Then the text is blown up and is misaligned with my GUI. Is there a simple way to ignore the display setting and force the font size?
-
I am trying to make a script that changes the active display screen. I got a setup with 3 screens and can only have 2 active screens at the same time, so I want to automate the process by making a script for it. Screen 1(Main) and 2(Extended) are my main screens. I also got a third screen that I use for watching movies and such. I've tried searching both the forum and google for relevant problems, but I can't seem to find anything. Also tried looking for the display settings in the registry, but gave up searching without any idea what to look for. Do you guys got any tips? Regards, Akarillon
-
To save future readers a little sweat I'm editing my original post to insert the following: After trying various suggested scripting approaches, some of which introduced new problems and some which had the same problem described here, I tried my script and a few others on another computer. No white flashes, tears, glitches. So I brought it back to my main box and disabled the Intel GPU that was feeding a 3rd monitor. Down to two monitors connected to a single NVidia GPU the visual glitches disappeared. Who would'a thought?! That said, some of the replies that follow provide valuable insights into the various ways to skin this cat using AutoIt. Some suggested scripts introduced new problems so they might be instructive about approaches to avoid. Ultimately, JohnOne suggested an elegantly simple script that perfectly accomplishes my goal. --------------------- I want to display a 800x600 picture (i.e., not full-screen) without a border, close-box, title, etc. I then want to replace that picture with another one -- cleanly. Think of an old-fashioned dual-projector slide show where there's no black-out or other interruption to the image on screen. This way I can start with a background image, then add elements to it seamlessly (once called "a build", i.e., pseudo-animation). The image format doesn't matter to me. I can't use an animated GIF or video because my code is doing things in the background between images, so timing varies. I'm having bad luck using an AutoIt form to accomplish this (GUICtrlCreatePic, followed by subsequent GUICtrlSetImage's). The result is a glitch -- usually a white flash or tear in the picture -- at almost every image change. (see 10/10/13 post entitled "random visual glitch when using GUICtrlSetImage"). So I guess that's out. SplashImageOn blanks out the first image before displaying the next (like a single-projector slide show), so it's not seamless -- plus there's still a tiny border visible. $var = Default SplashImageOn("","image1.bmp",$var,$var,$var,$var,1) sleep(2000) SplashImageOn("","image2.bmp",$var,$var,$var,$var,1) sleep(2000) SplashImageOn("","image3.bmp",$var,$var,$var,$var,1) sleep(2000) Any suggestions?
- 17 replies
-
SOLVED----GUI Window Remembers Screen Position
atnextc posted a topic in AutoIt GUI Help and Support
I have a script that parses our wiki page at work and generates an email. The email is generated in its own "GUi-Window". I have 4 monitors on my machine. My script is opening up the newly generated GUI page on another monitor other than the "primary". This is fine for me, but this is going to be deployed to everyone in my department who don't have multiple monitors setup. I tested on a co-workers machine who only has his laptop, and the first gui opens just fine, but the second gui "email notification" opens "Off Screen". I had to move it over to the laptop display to be able to see what was there. Why is it doing this and how can I make it so that the second window always opens up on the same window where the first gui opens? Code is below, any and all help is greatly appreciated. FIrst Gui Creation $C4Automation = GUICreate("C4 Automation", 615, 438, 188, 121) $Label1 = GUICtrlCreateLabel("C4 Automation", 32, 24, 564, 41) GUICtrlSetFont(-1, 24, 800, 0, "MS Sans Serif") $ProjectSiteCombo = GUICtrlCreateCombo("", 184, 104, 145, 25, BitOR($CBS_DROPDOWNLIST, $CBS_SORT)) $ProjectTypeCombo = GUICtrlCreateCombo("", 184, 136, 145, 25, BitOR($CBS_DROPDOWNLIST, $CBS_SORT)) $ProjectNameInputBox = GUICtrlCreateInput("Project Name", 184, 168, 161, 21, $ES_UPPERCASE) $NumberofProjects = GUICtrlCreateInput("Number of Projects", 184, 200, 161, 21) $Submit = GUICtrlCreateButton("Submit", 136, 264, 75, 25) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Exit = GUICtrlCreateButton("Exit", 256, 264, 75, 25) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label2 = GUICtrlCreateLabel("Choose Your Project Type:", 24, 140, 156, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label3 = GUICtrlCreateLabel("Choose Your Project Site:", 24, 108, 150, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label4 = GUICtrlCreateLabel("Input Your Project Name:", 24, 172, 147, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label5 = GUICtrlCreateLabel("Input Number of Projects", 24, 204, 145, 17) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $Label6 = GUICtrlCreateLabel("Choose Your Project Side", 24, 236, 149, 17) GUICtrlSetState(-1, $GUI_HIDE) GUICtrlSetFont(-1, 8, 800, 0, "MS Sans Serif") $ProjectSideCombo = GUICtrlCreateCombo("", 184, 232, 145, 25, BitOR($CBS_DROPDOWN, $CBS_SORT)) GUICtrlSetState(-1, $GUI_HIDE) GUISetState(@SW_SHOW) Second GUI Creation $EmailEdit = GUICtrlCreateEdit("", 32, 72, 761, 401, BitOR($ES_MULTILINE, $WS_VSCROLL)) GUICtrlSetState(-1, $GUI_HIDE) GUICtrlSetData(-1, "") $CopyButton = GUICtrlCreateButton("Copy To Clipboard", 680, 480, 99, 25) GUICtrlSetState(-1, $GUI_HIDE) GUISetState(@SW_HIDE);;;;This hides the first GUI that is created. $EmailForm = GUICreate("Maintenance Email Notification", 831, 518, -1435, 222) $Label = GUICtrlCreateLabel("Maintenance Email Notification ", 25, 22, 780, 41) GUICtrlSetFont(-1, 24, 400, 0, "MS Sans Serif") $EmailEdit = GUICtrlCreateEdit("", 32, 72, 761, 401, BitOR($ES_MULTILINE, $WS_VSCROLL)) GUICtrlSetState(-1, $GUI_HIDE) GUICtrlSetData(-1, "") $CopyButton = GUICtrlCreateButton("Copy To Clipboard", 680, 480, 99, 25) Local $test = FileRead("c4.txt") ClipPut($test) FileClose($c4file) FileDelete("c4.txt") GUICtrlSetData($EmailEdit, ClipGet()) GUICtrlSetState($EmailEdit, $GUI_SHOW) GUISetState(@SW_SHOW);;;This shows the email generated form once all the data is populated in the edit box. -
um i just got this idea to ask Is there something that would display the gui your coding.. say you are writing a code guictrlcreate("blabla") and autmaticly it is shown on your screen once like game graphic creator... for example like "unreal engine udk" i would create this kind of thing myself but im not sure i can take this kind of thing on, but i will try anyway if there is no such thing. Since i know this would be very epic thing