Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 06/12/2022 in all areas

  1. GuiBuilderPlus GuiBuilderPlus is a small, easy to use GUI designer for AutoIt. Originally created long ago as AutoBuilder by the user CyberSlug, enhanced as GuiBuilder by TheSaint, and further enhanced and expanded as GuiBuilderNxt by jaberwacky, GuiBuilderPlus is a continuation of their great work, with a focus on increased stability and usability followed by new features. ------ Yes, I have decided to bring back our old friend the GuiBuilder. This utility has a long history, which you can read about in TheSaint's Gui Creators topic, starting all the back back with CyberSlug's AutoBuilder. Even though I've hacked the original code to pieces in order to document and better understand what is going on, the essence of GuiBuilder still lives on! I am using the awesome updates from GuiBuilderNxt by jaberwacky as a starting point since he already did a lot of the hard work of parsing and updating the original code, plus I really like the layout that came about from that update. Unfortunately development seems to have stopped in 2016. Not sure how much interest there is in this, but suggestions and bug reports are welcome. See Full Changelog: Download the latest version: v1.3.0 (2024-03-24) GuiBuilderPlus v1.3.0 - 2024-03-24.zip FIXED: Wrong line endings when copying from code preview window FIXED: Issue changing properties when Obect Explorer window is not open FIXED: Issue when selecting controls under certain other conditions FIXED: SaveAs keyboard shortcut FIXED: Undo/Redo for Global property ADDED: Auto-size property for Labels, Buttons, and Inputs GitHub Repository: https://github.com/KurtisLiggett/GuiBuilderPlus
    1 point
  2. NULL isn't a string! Pass an empty string: $str = ''
    1 point
  3. Hi everyone, I am proud to announce that we have our first sponsor, they wish to remain anonymous but they will always have my gratitude They have donated enough to fully fund 2 hours of development, and I have spent approximately the same amount of time working on ECI's parser again. I'm currently stuck at an issue with the parser, some of you may have noticed my new topic about it: I've been trying to think of a solution but I haven't been able to come with up with any, but I hope to do more research this week. I will post any updates here next week
    1 point
  4. @NassauSkyIt would be helpful if you provided a more detailed description explaining your scenario. For example -- Why do you need to perform the "reattach" in the first place? Is the webdriver instance being reused or is it being closed then opened again? What have you tried thus far? P.S. Search the forum for the terms "remote-debugging-port" and "debuggerAddress" should give you some ideas on how this can be done.
    1 point
  5. Hey everyone! Check the first post for the latest update with a whole slew of improvements and new features! Much time and care was put into improving the functionality and stability of selecting and manipulating controls (selection rectangle, copy, paste, drag, resize, etc...) Everything seems to be working pretty well, but slows down considerably when selecting massive groups. I've done what I could for now, but will need to think about how to improve this. Particularly neat is the new feature for aligning the selected controls. Select several controls, then right click on a control or use the edit menu to arrange and align the selected controls. Everything will be aligned to the FIRST selected control. Also cool is that groups of controls can be selected and resized together proportionally. Also, when copying and pasting multiple controls at once, they maintain their relative positions instead of stacking on top of each other. Unfortunately, the rich edit control for syntax highlighting was removed. It was causing so many issues and was not worth it to me to fight it. Standard edit works fine for now. I still need to add control style properties, but I am running out of ideas. Needing some suggestions! But keep it simple. 😏 What's Changed? FIXED: Lots of handling of copy+paste scenarios FIXED: Tooltip when resizing multiple controls FIXED: Changed the selection rectangle so controls don't bounce around during right-to-left selection anymore FIXED: Right-click when multiple controls are selected FIXED: Lagging when dragging many controls at once FIXED: Improved a lot of flickering when dragging things FIXED: Select a control after drawing (instead of drawing on top of it) ADDED: New menu item, shortcut key Ctrl+X, and context menu item to 'Cut' selected controls ADDED: Cut/Copy/Paste will now maintain relative positions and spacing ADDED: Improved paste functionality When pasting with Ctrl+V, control will follow mouse waiting to be placed by single click When pasting with menu or right-click, control will be placed at mouse position ADDED: Resizing multiple-selected controls will resize proportionally as a group ADDED: Resize using any of the selected grippies, not just the last selected ADDED: Status messages for changing some settings (F3, F7) ADDED: Tool button icons now built into the exe, so resources folder is not necessary to run ADDED: Improved selection detection Left-to-right selection requires entire control to be in the rectangle Right-to-left selection selects anything that crosses the rectangle ADDED: Right-click menu items: Arrange-> Align left/center/right, top/middle/bottom, space vertical/horizontal ADDED: Ask to save (definition) dialog when closing, only when a change was detected since the last save MAINT: Added logging function and debug flag for testing/development MAINT: Downgraded to AutoIT v3.3.14.5 for personal reasons (removed maps) UPDATED: Better startup loading, so windows open at the same time UPDATED: Better redrawing with working with multiple controls UPDATED: Reverted back to standard edit box for code preview due to more issues with rich edit than it was worth REMOVED: DPI scaling - not reliable enough to keep for now
    1 point
  6. Released v1.0.8 today, here's the updates: Added Open include file from the current line with Alt+i/Command Palette (thanks Danp2) Insert UDF Header function (thanks Danp2) UDF Creator option in Settings to auto populate author when inserting a Function Header AutoIt Map functions (thanks steipal) Colorized output when running scripts (thanks Danp2) Restart script (thanks vanown) Abbreviations from SciTe4AutoIt as Snippets ( is now a trigger character to accept a function completion and will place both parens and initiate signature help for the function. Changed The AutoIt Help command will now open on blank lines (thanks Danp2) Updated the descriptions of the path settings Refactored filepath finding code (thanks Danp2) Fixed Code folding for If, Switch, For, While, With, #comments-start, #cs, #comments-end and #ce (thanks Danp2) Go to Workspace Symbol functionality restored Rate and View on VS Code Marketplace Star & Submit Issues on GitHub
    1 point
  7. https://www.autoitscript.com/autoit3/files/beta/autoit/autoit-v3.3.16.1-rc2-setup.zip https://www.autoitscript.com/autoit3/files/beta/autoit/autoit-v3.3.16.1-rc2.zip 3.3.16.1 (xxx, 2022) (Release) AutoIt: - Fixed #3866: REGEXPCLASS broken in 3.3.16.0. - Fixed #3865: Image Control resizing behave as forced $GUI_DOCKWIDTH and $GUI_DOCKHEIGHT. - Fixed #3864: StringRegExp() crash with patterns that cause infinite recursion. - Fixed #3876: Hex Number Arithmetic is incorrect. - Fixed #3869: Subtraction operator before power operation is parsed incorrectly. - Fixed #3879: Dim Map to Array. - Fixed #3875: GUICtrlSetResizing() performance by Reverting #3831: GUICtrlSetPos() $GUI_DOCKHCENTER. - Fixed: missing uninstalling file GUICtrlInternals.au3 since 3.3.15.2. UDFs: - Added: UBound[2] example. - Added: StringRegExp[5] example. - Added: _GUICtrlEdit_SetPadding() function and example. - Added: _WinAPI_RegDeleteKey() can use $hKey as in RegRead(). - Added #3863: _WinAPI_GetCapture(). - Added: Allows _DebugArrayDisplay() to be used in UserFunc. - Added: _ArrayDisplay() and _DebugArrayDisplay() support Min Column width. - Added: _Array2DCreate() support 1D and/or 2D arrays. - Added: _DebugReportVar() display DllStruct content. - Added: _ArrayDisplay() and _DebugArrayDisplay() display {Array[dims]}, {Map[nentry]} and {Object}. - Fixed #3867: Changes in 'SecurityConstants.au3' to avoid name conflict. THIS IS A SCRIPT BREAKING CHANGE - Fixed: Regression in 3.3.15.1, _WinAPI_RegCreateKey() and _WinAPI_RegOpenkey(). - Fixed: Regression of #3835 on _GDIPlus_GraphicsGet*(). - Fixed #3871: _ArrayDisplay() Hang sorted array with Null element. - Fixed: _FTP_FileGetSize() very big size. - Fixed #3872: FTP-Server in AutoIt Help no longer accessible. - Fixed #3877: GUICtrlCreateLabel() overlapping controls doc precision ($WS_CLIPSIBLINGS). - Fixed #3883: _DebugArrayDisplay() produces uncalled console message.
    1 point
  8. Hi Azevedo, just 3 days ago, as SmOke_N said in previous post, I posted an >udf to parse tables from a raw html that makes use of an internal function (the core function) that I wrote and used for the tables extraction purpose, but it's been thinked to be also used for a more general purpose, that is to extract portions of code related to specific html tags. Maybe it can be useful also for your project. In short, that function can return a sort of collection of the portions of code in the page related to specific html tags. Of sure it can be enhanced and refined, but it can be a starting point. An example is better of many words: #include <array.au3> Local $sHtml = BinaryToString(InetRead("http://www.autoitscript.com")) ; get the raw source Local $aMyTags = _ParseTags($sHtml, "<a", "</a>") ; collection of <a> tags _ArrayDisplay($aMyTags) $aMyTags = _ParseTags($sHtml, "<script", "</script>") _ArrayDisplay($aMyTags) $aMyTags = _ParseTags($sHtml, "<div", "</div>") _ArrayDisplay($aMyTags) $aMyTags = _ParseTags($sHtml, "<style", "</style>") _ArrayDisplay($aMyTags) ; #FUNCTION# ==================================================================================================================== ; Name ..........: _ParseTags ; Description ...: searches and extract all portions of html code within opening and closing tags inclusive. ; Returns an array containing a collection of <tag ...... </tag> lines. one in each element (even if are nested) ; Syntax ........: _ParseTags($sHtml, $sOpening, $sClosing) ; Parameters ....: $sHtml - A string value containing the html listing ; $sOpening - A string value indicating the opening tag ; $sClosing - A string value indicating the closing tag ; Return values .: success: an 1D 1 based array containing all the portions of html code representing the element ; element [0] af the array (and @extended as well) contains the counter of found elements ; faillure: An empty string and sets @error as following: ; @error: 1 - required tags are not present in the passed HTML ; 2 - error while parsing tags, (opening and closing tags are not balanced) ; 3 - error while parsing tags, (open/close mismatch error) ; =============================================================================================================================== Func _ParseTags($sHtml, $sOpening, $sClosing) ; example: $sOpening = '<table', $sClosing = '</table>' ; it finds how many of such tags are on the HTML page StringReplace($sHtml, $sOpening, $sOpening) ; in @xtended nr. of occurences Local $iNrOfThisTag = @extended ; I assume that opening <tag and closing </tag> tags are balanced (as should be) ; (so NO check is made to see if they are actually balanced) If $iNrOfThisTag Then ; if there is at least one of this tag ; $aThisTagsPositions array will contain the positions of the ; starting <tag and ending </tag> tags within the HTML Local $aThisTagsPositions[$iNrOfThisTag * 2 + 1][3] ; 1 based (make room for all open and close tags) ; 2) find in the HTML the positions of the $sOpening <tag and $sClosing </tag> tags For $i = 1 To $iNrOfThisTag $aThisTagsPositions[$i][0] = StringInStr($sHtml, $sOpening, 0, $i) ; start position of $i occurrence of <tag opening tag $aThisTagsPositions[$i][1] = $sOpening ; it marks which kind of tag is this $aThisTagsPositions[$i][2] = $i ; nr of this tag $aThisTagsPositions[$iNrOfThisTag + $i][0] = StringInStr($sHtml, $sClosing, 0, $i) + StringLen($sClosing) - 1 ; end position of $i^ occurrence of </tag> closing tag $aThisTagsPositions[$iNrOfThisTag + $i][1] = $sClosing ; it marks which kind of tag is this Next _ArraySort($aThisTagsPositions, 0, 1) ; now all opening and closing tags are in the same sequence as them appears in the HTML Local $aStack[UBound($aThisTagsPositions)][2] Local $aTags[Ceiling(UBound($aThisTagsPositions) / 2)] ; will contains the collection of <tag ..... </tag> from the html For $i = 1 To UBound($aThisTagsPositions) - 1 If $aThisTagsPositions[$i][1] = $sOpening Then ; opening <tag $aStack[0][0] += 1 ; nr of tags in html $aStack[$aStack[0][0]][0] = $sOpening $aStack[$aStack[0][0]][1] = $i ElseIf $aThisTagsPositions[$i][1] = $sClosing Then ; a closing </tag> was found If Not $aStack[0][0] Or Not ($aStack[$aStack[0][0]][0] = $sOpening And $aThisTagsPositions[$i][1] = $sClosing) Then Return SetError(3, 0, "") ; Open/Close mismatch error Else ; pair detected (the reciprocal tag) ; now get coordinates of the 2 tags ; 1) extract this tag <tag ..... </tag> from the html to the array $aTags[$aThisTagsPositions[$aStack[$aStack[0][0]][1]][2]] = StringMid($sHtml, $aThisTagsPositions[$aStack[$aStack[0][0]][1]][0], 1 + $aThisTagsPositions[$i][0] - $aThisTagsPositions[$aStack[$aStack[0][0]][1]][0]) ; 2) remove that tag <tag ..... </tag> from the html $sHtml = StringLeft($sHtml, $aThisTagsPositions[$aStack[$aStack[0][0]][1]][0] - 1) & StringMid($sHtml, $aThisTagsPositions[$i][0] + 1) ; 3) adjust the references to the new positions of remaining tags For $ii = $i To UBound($aThisTagsPositions) - 1 $aThisTagsPositions[$ii][0] -= StringLen($aTags[$aThisTagsPositions[$aStack[$aStack[0][0]][1]][2]]) Next $aStack[0][0] -= 1 ; nr of tags still in html EndIf EndIf Next If Not $aStack[0][0] Then ; all tags where parsed correctly $aTags[0] = $iNrOfThisTag Return SetError(0, $iNrOfThisTag, $aTags) ; OK Else Return SetError(2, 0, "") ; opening and closing tags are not balanced EndIf Else Return SetError(1, 0, "") ; there are no of such tags on this HTML page EndIf EndFunc ;==>_ParseTags
    1 point
×
×
  • Create New...