Jump to content

Leaderboard

Popular Content

Showing content with the highest reputation on 03/12/2018 in all areas

  1. water

    OutlookEX

    Version 1.7.0.1

    10,054 downloads

    Extensive library to control and manipulate Microsoft Outlook. This UDF holds the functions to automate items (folders, mails, contacts ...) in the background. Can be seen like an API. There are other UDFs available to automate Outlook: OutlookEX_GUI: This UDF holds the functions to automate the Outlook GUI. OutlookTools: Allows to import/export contacts and events to VCF/ICS files and much more. Threads: Development - General Help & Support - Example Scripts - Wiki BTW: If you like this UDF please click the "I like this" button. This tells me where to next put my development effort KNOWN BUGS (last changed: 2020-02-09) None
    1 point
  2. Utter is a free ware windows API automation script.It can do most of the sapi dll functions."SAPI" stands for Windows Speech Reconition API,SAPI.dll is the file which manages the speech recognition of windows Utter utilises most of the SAPI functions making use of the best potential of SAPI.dll,You can include speech recognition to your project by using utter. Utter zipped and updated (new version with examples) Modified ......: 12/04/2017 Version .......: 3.0.0.1 Author ........: Surya I am new to autoit it sounds great and i love it while i am getting used to it so i want to write my own UDF in autoit first of all i thank all the forum members because i couldnt do it without research,So i wrote UTTER ,Its is a UDF that uses most of the SAPI dll function or in simple words it can do many functions relating to the computers speech recognition if you have any doubt in the code or have any bugs please notify me freely I will be always there to help its my first UDF so please notify me if you found any error Thank you! Utter has been recently updated ,examples included.The zip can be downloaded here at the download section of autoit : Download utter !! CAUTION !! REMEMBER TO SHUTDOWN THE INSTANCE OF CREATED RECOGNITION ENGINE BEFORE STARTING ANOTHER INSTANCE IF YOU START ANOTHER WITHOUT SHUTTING THE PREVIOUS ONE DOWN IT WILL LEAD TO AN ERROR! REMEMBER THAT "|" IS THE DEFAULT GUIDataSeparatorChar CHANGE IT ACCORDING TO YOUR NEEDS AND GRAMMAR DELIMITER IS GUIDataSeparatorChar IF NO GUIDataSeparatorChar IS FOUND IN THE INPUT STRING THEN THE ENTIRE STRING WOULD BE CONSIDERED AS ONE WORD! DO NOT CALL THE INTERNAL FUNCTIONS THEY ARE TO BE CALLED INSIDE THE FUNCTION AND DO NOT CHANGE THE VALUE OF VARIABLES USED IN THE FUNCTION! THE RECIEVING FUNCTIONS SHOULD HAVE ATLEAST ONE PARAMETER TO ACCEPT THE SPEECH COMMANDS FROM THE _Utter_Speech_GrammarRecognize() FUNCTION please report if you have any bugs/complaints
    1 point
  3. Earthshine

    Trading Bot

    Just report the thread and he will be here
    1 point
  4. Anas, I'm working on a complete new version of this UDF, but it'll not be soon. This means that there'll be no more updates of existing code. The problem in your first point is that the functionality is not supported. All functionality is demonstrated in examples. If you use functionality that's not demonstrated, it'll probably not work. The second point seems to be a bug. As I said, I do not want to do anything about it. Sorry. The main reason for the performance issues in your last point is the number of columns. You have 15 columns but only half are visible. But all 15 columns will be updated, eg. when you are scrolling. Half of the columns are thus updated to no avail because they are not visible. That's the problem. Create 2 listviews in 2 tabs. It'll provide much better performance. When you want to run as much code, there should be no horizontal scrollbar. I've taken advantage of the opportunity to update the images in first post (new links).
    1 point
  5. One of th ebiggest reasons I stopped using them was the code bloat that most produce. There are a lot of options to minimize that, but after a while it's just easier to throw a GUI together than trying to edit the control functions you don't need.
    1 point
  6. So you could use something like (untested): Local $sLink_Artikel = _IEPropertyGet ($oIE, "locationurl") Local $aLink_Artikel = StringSplit($sLink_Artikel, "=") Local $iLink_Artikel = $aLink_Artikel[$aLink_Artikel[0]] Local $oInputs = _IETagNameGetCollection($oIE, "input") If IsObj($oInputs) Then For $oInput In $oInputs If $oInput.ClassName = "ChkBox" Then If $oInput.Value = $iLink_Artikel Then _IEAction($oInput, "click") EndIf Next EndIf
    1 point
  7. I would like to know on how to retrieve text within string 1) start after search "by" and end with "reads" 2) it should return " bus and Mary" as results = $sResult $txt="I go to school by bus and Mary reads book in Library" Does anyone have any suggestions? Thanks in advance for any suggestions
    1 point
  8. You need to use the Array i.e. FileWrite($hFileOpen, $Check[0] & @CRLF)
    1 point
  9. Help file is still pending. Melba23 already pointed you in the right direction, is this lazyness?
    1 point
  10. oemript, Dog eaten your Help file? How about _StringBetween? M23
    1 point
  11. @Melba23 No issues when you go ahead with that anyways... won't shed any tears over it. Jos
    1 point
  12. Nareshm, You are lucky Jos got to this first because I would have banned you permanently. M23
    1 point
  13. Buggered if I know why it doesn't work on your system, it works fine for me, here is my last attempt: #include <IE.au3> Local $oIE = _IECreate("https://www.lazada.com.my/catalog/?q=toys") WinSetState(_IEPropertyGet($oIE, "title"), "", @SW_MAXIMIZE) Local $oListBoxs = _IETagNameGetCollection($oIE, "div") Local $bListItems = False, $sSearch = "", $sLocationUrl = "" For $oListBox In $oListBoxs If StringInStr($oListBox.ClassName, "ant-select-selection") Then _IEAction($oListBox, "click") ControlSend(_IEPropertyGet($oIE, "title"), "", "", "{TAB 2}") $bListItems = True EndIf If $bListItems Then If $oListBox.getAttribute("data-qa-locator") ="general-products" Then $oListItems = _IETagNameGetCollection($oListBox, "a") For $oListItem In $oListItems If StringStripWS($oListItem.InnerText, 8) <> "" Then _IEAction($oListItem, "focus") ConsoleWrite("Item Information: " & @CRLF & $oListItem.InnerText & @CRLF & @CRLF & "Item Address: " & @CRLF & _IEPropertyGet($oIE, "statustext") & @CRLF) EndIf Next EndIf EndIf Next
    1 point
  14. AutoIt being mono-threaded, it isn't possible. What you could do is create your own _ArrayDisplay-looking GUI with all bells and whistles you need and invoke _ArrayDisplay separately.
    1 point
  15. Yes. If you only need to launch the website without further automation, then you can use the Run command with the appropriate parameters to launch the browser with a particular URL. If you want to actually interact with the browser beyond just launching the website, then take a look at FAQ 31.
    1 point
  16. Melba23

    AutoIt3 Portable

    gillesg, Guinness has moved on and is now a very infrequent visitor to the forum - you will have to be patient and see if he spots your request. M23
    1 point
  17. #include <FileConstants.au3> #include <MsgBoxConstants.au3> #include <WinAPIFiles.au3> #include <IE.au3> ; Create a constant variable in Local scope of the filepath that will be read/written to. ; Local Const $sFilePath = _WinAPI_GetTempFileName(@TempDir Local $oButtons Local $oIE = _IECreate("https://shopee.com.my/") Sleep(5000) Local $oDivs = _IETagNameGetCollection($oIE, "div") For $oDiv In $oDivs If $oDiv.ClassName = "language-selection__list" Then $oButtons = _IETagNameGetCollection($oDiv, "button") For $oButton In $oButtons If $oButton.InnerText = "English" Then _IEAction($oButton, "click") ExitLoop 2 EndIf Next EndIf Next Sleep(5000) Local $sSendKey = "k" Local $oInputs = _IETagNameGetCollection($oIE, "input") For $oInput In $oInputs If StringInStr($oInput.ClassName, "searchbar-input") Then _IEAction($oInput, "focus") ControlSend(_IEPropertyGet($oIE, "title"), "", "", $sSendKey) Sleep(2000) _IEAction($oInput, "click") Sleep(2000) ExitLoop EndIf Next Local $oLinks = _IETagNameGetCollection($oIE, "a") Sleep(3000) For $oLink In $oLinks If StringInStr($oLink.ClassName, "shopee-searchbar-hints") Then $sSearch &= StringStripWS($oLink.Innertext, 7) & @CRLF Next MsgBox(32, "Search Items", $sSearch )
    1 point
  18. Read the help file. Hint: ExitLoop supports an optional parameter for supplying the number of loop levels to exit.
    1 point
  19. Are you sure the button is being clicked? I'm thinking not. However, you could rewrite that section of code like this, so that it stops looping after the correct button is found -- For $oButton In $oButtons If $oButton.InnerText = "English" Then _IEAction($oButton, "click") ExitLoop EndIf Next
    1 point
  20. oemript, FileRead & MsgBox. As suggested, open the Help file and read about some of the many and varied functions that AutoIt gives you - it will save a lot of wear and tear on your keyboard when you keep asking simple questions like this one. M23
    1 point
  21. the help file mentions _FileReadToArray UDF. look into that the HELP file is great for looking for HELP. you can also read it line by line if it's a huge file
    1 point
  22. Local $oInputs = _IETagNameGetCollection($oIE, "input") For $oInput In $oInputs If StringInStr($oInput.ClassName, "searchbar-input") Then $oInput.Value = "k" ExitLoop EndIf Next
    1 point
  23. oemript, If you use Chr then you can get the loop to work: For $i = 97 To 122 _Main(Chr($i)) Next Func _Main($sChar) ConsoleWrite($sChar & @CRLF) EndFunc M23
    1 point
  24. I don't think you understand the role attribute, the <input...> is playing the role of a "ComboBox" it's not actually a ComboBox, using CSS the suggested results are sent to an entirely different <div role="listbox">, below this are <div role="option">, now you could get InnerText from the "listbox" but you'll notice alot of rubbish at the end, which is why I chose to use the option role.
    1 point
  25. You can't get InnerText from an Input, you can get the value, remember we used _IEGetObjByName($oiE, "q") which corresponds to the Search "<input ... name="q" ...>, to add data to the Input we use: Local $oInput = _IEGetObjByName($oIE, "q") $oInput.Value = "k" to get data from the input we would use: Local $oInput = _IEGetObjByName($oIE, "q") MsgBox(32, "Input Value", $oInput.Value)
    1 point
  26. ul - stands for unordered list, this is dynamically created when you type in the search field, it doesn't exist if you view the page source by default because you need to type something first. With regards to the code not working on another site, it won't, the code was written for www.google.com not world.taobao.com. I've had a quick look and it's not as easy as Google Search, the following works but requires a 10 second delay, because the site pops up a banner which then strips the search field. You will need to play around and try and get it to work as you like, the following should get you started: #include <IE.au3> Local $sFilePath = "D:\Sample.txt" Local $sSendKey = "k" Local $oIE = _IECreate("https://world.taobao.com/") Sleep(6000) Local $oInput = _IEGetObjByName($oIE, "q") _IEAction($oInput, "focus") ControlSend(_IEPropertyGet($oIE, "title"), "", "", $sSendKey) Sleep(2000) ControlSend(_IEPropertyGet($oIE, "title"), "", "", "{DOWN}") Sleep(2000) Local $oSearchBox = _IEGetObjById($oIE, "oversea-searchbar") Local $sSearch = "" Local $oDivs = _IETagNameGetCollection($oSearchBox, "div") For $oDiv In $oDivs If $oDiv.getAttribute("data-tpl") = "list" Then $sSearch &= StringStripWS($oDiv.Innertext, 7) & @CRLF Next MsgBox(0,'', $sSearch)
    1 point
  27. isn't it used when you want to mark that in that point a part of the original message has been removed?.... or maybe it's <snip>... ???
    1 point
  28. guinness

    StringSplit $CmdLineRaw

    Thanks to Ascend4nt for the StringRegExp() syntax and the Authors of WinAPI.au3 for the "ExpandEnvironmentStringsW" API Function. Example use of Function: #include <Array.au3> #include <WinAPI.au3> #include <WinAPIShPath.au3> Local $sCmdLine = '%WINDIR%\PROGRAMNAME\settings.ini "C:\Users\Test\Desktop\PROGRAMNAME\PROGRAMNAME TESTING.au3" "C:\Users\Test\Desktop\PROGRAMNAME\PROGRAMNAME V1.0.au3" "C:\Users\Test\Desktop\PROGRAMNAME\Script Changes.txt"' Local $aArray = _CmdLineRaw($sCmdLine) _ArrayDisplay($aArray, '_CmdLineRaw()') $aArray = _WinAPI_CommandLineToArgv(_WinAPI_ExpandEnvironmentStrings($sCmdLine)) ; Using Win32 API calls. _ArrayDisplay($aArray, '_WinAPI_CommandLineToArgv()') ; #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w- 4 -w 5 -w 6 -w 7 ; #FUNCTION# ==================================================================================================================== ; Name ..........: _CmdLineRaw ; Description ...: Creates an array of a $CmdLineRaw string or similar. ; Syntax ........: _CmdLineRaw($sString) ; Parameters ....: $sString - $CmdLineRaw-like string. ; Return values .: Success - An array, by default the first element ($aArray[0]) contains the number of strings returned, the remaining elements ($aArray[1], $aArray[n], etc.) contain the seperated strings. ; Failure - An array with the zeroth element set to 0. ; Author ........: guinness ; Modified ......: ; Remarks .......: Ascend4nt who designed the regular expression. ; Related .......: _StringParseParameters(): http://www.autoitscript.com/forum/topic/88995-stringparseparameters/ ; Example .......: No ; =============================================================================================================================== Func _CmdLineRaw($sString) Local $aReturn = StringRegExp('"' & @ScriptFullPath & '"' & ' ' & _WinAPI_ExpandEnvironmentStrings($sString), '((?<=\s"|^")[^"]+(?=")|[^\s"]+)', $STR_REGEXPARRAYGLOBALMATCH) $aReturn[0] = UBound($aReturn, 1) - 1 Return $aReturn EndFunc ;==>_CmdLineRaw
    1 point
  29. Something I wrote some time ago. It automatically recognizes the connection between a parameter and its value, so you logic for processing the parameters can be simpler. The complete commands of your script are stored in $CMDLINERAW. You can parse it with this function: #include <Array.au3> $CMDString = '/a:"value" -big="this -test:1\"23 is & $#@ _ your life" -test=th_3 -tte -äß$=/ätest/h.b' $ResultArray = _ParseCMDLine($CMDString) _ArrayDisplay($ResultArray) ;=============================================================================== ; ; Function Name: _ParseCMDLine($CMDString) ; Description:: Parses a CMD-String to Parameters with Values ; Parameter(s): $CMDString -> String to parse ; Requirement(s): ? ; Return Value(s): Error: 0 and @error = StringRegExp-Error ; Success: 2 Dimensional Array: ; $array[$i][0] : Parameter including value ; $array[$i][1] : Parameter ; $array[$i][2] : Value with quotation marks (only if value has quotaion marks) ; $array[$i][3] : Value without quotation marks ; Author(s): Prog@ndy ; ; Basis: http://regexlib.com/REDetails.aspx?regexp_id=1220 ;=============================================================================== ; Func _ParseCMDLine($CMDString) Local $y, $j, $i, $entry Local $x = StringRegExp($CMDString,'(?:\s*)(?<=[-|/])(?<name>[^\s-|/:|=]*)(?:(?:[:|=](?:("(?<value1>.*?)(?<!\\)")|(?<value>\S*)))|\w*?)',4) If @error Then Return SetError(@error,0,0) Local $ResultArray[UBound($x)][4] For $i = 0 To UBound($x)-1 $entry = $x[$i] For $y = 0 To UBound($entry)-1 $j = $y If $y > 3 Then $j = 3 $ResultArray[$i][$j] = $entry[$y] Next Next Return $ResultArray EndFunc
    1 point
×
×
  • Create New...