Jump to content

Search the Community

Showing results for tags 'AutoIT'.



More search options

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Location


WWW


Interests

Found 664 results

  1. Hello everyone! I am trying to make a script that uploads files for me in wordpress(All I need to do is to manually choose which files to upload) Here is my script so far: #include <FileConstants.au3> #include <MsgBoxConstants.au3> Upload() Func Upload() $sPD = "log=username&pwd=mypassword&wp-submit=Log+ind&redirect_to=http%3A%2F%2Fmyurl.com%2Fwp-admin%2F&testcookie=1" oHTTP = ObjCreate("winhttp.winhttprequest.5.1") $oHTTP.Open("POST", "http://myurl.com/wp-login.php " & $sUSR, False) ; Post url $oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") $oHTTP.SetRequestHeader("Accept-Language", "en-US,en;q=0.5") $oHTTP.SetRequestHeader("User-Agent", "User-Agent: Mozilla/5.0 (Windows NT 6.3; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/46.0.2490.52 YaBrowser/15.12.2490.3614 (beta) Yowser/2.5 Safari/537.36") $oHTTP.SetRequestHeader("Referer", "http://myurl.com/wp-login.php?redirect_to=http%3A%2F%2Fmyurl.com%2Fwp-admin%2F&reauth=1") $oHTTP.SetRequestHeader("Cookie", "wordpress_test_cookie=WP+Cookie+check") $oHTTP.SetRequestHeader("Connection", "keep-alive") $oHTTP.SetRequestHeader("Content-Type", "application/x-www-form-urlencoded") ; Header data > $oHTTP.Send($sPD) $oHTTP.Open("GET", "http://myurl.com/wp-admin/media-new.php", False) ; Post url $oHTTP.SetRequestHeader("Host", "myurl.com") $oHTTP.SetRequestHeader("User-Agent", "Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0") $oHTTP.SetRequestHeader("Accept", "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8") $oHTTP.SetRequestHeader("Accept-Language", "en-US,en;q=0.5") $oHTTP.SetRequestHeader("Referer", "http://myurl.com/wp-admin/") $oHTTP.Send() Endfunc The upload button = "Choose Files" Example code from: https://www.autoitscript.com/autoit3/docs/functions/FileOpenDialog.htm #include <FileConstants.au3> #include <MsgBoxConstants.au3> Example() Func Example() ; Create a constant variable in Local scope of the message to display in FileOpenDialog. Local Const $sMessage = "Select a single file of any type." ; Display an open dialog to select a file. Local $sFileOpenDialog = FileOpenDialog($sMessage, @WindowsDir & "\", "All (*.*)", $FD_FILEMUSTEXIST) If @error Then ; Display the error message. MsgBox($MB_SYSTEMMODAL, "", "No file was selected.") ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder. FileChangeDir(@ScriptDir) Else ; Change the working directory (@WorkingDir) back to the location of the script directory as FileOpenDialog sets it to the last accessed folder. FileChangeDir(@ScriptDir) ; Replace instances of "|" with @CRLF in the string returned by FileOpenDialog. $sFileOpenDialog = StringReplace($sFileOpenDialog, "|", @CRLF) ; Display the selected file. MsgBox($MB_SYSTEMMODAL, "", "You chose the following file:" & @CRLF & $sFileOpenDialog) EndIf EndFunc ;==>Example The HTML: <p class="drag-drop-buttons"><input style="position: relative; z-index: 1;" id="plupload-browse-button" value="Choose Files" class="button" type="button"></p> Some header info in the HTTP request: POST http://myurl.com/wp-admin/async-upload.php HTTP/1.1 Host: myurl.com User-Agent: Mozilla/5.0 (Windows NT 10.0; WOW64; rv:47.0) Gecko/20100101 Firefox/47.0 Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8 Accept-Language: en-US,en;q=0.5 Accept-Encoding: gzip, deflate Referer: http://myurl.com/wp-admin/media-new.php Content-Length: 4555551 Content-Type: multipart/form-data; boundary=---------------------------12345678910 Cookie: LONG COOKIE HERE! DNT: 1 Connection: keep-alive -----------------------------102062144610664 Content-Disposition: form-data; name="name" hdfhfg.jpg -----------------------------102062144610664 Content-Disposition: form-data; name="post_id" 0 -----------------------------102062144610664 Content-Disposition: form-data; name="_wpnonce" 123456 -----------------------------102062144610664 Content-Disposition: form-data; name="type" -----------------------------102062144610664 Content-Disposition: form-data; name="tab" -----------------------------102062144610664 Content-Disposition: form-data; name="short" 1 -----------------------------102062144610664 Content-Disposition: form-data; name="async-upload"; filename="hdfhfg.jpg" Content-Type: image/jpeg This wouldn't be much of a problem if I just had some simple post data, but this makes my head spin.... Thanks in advance Masters! (I could probably easily do this with IE, but I'd rather not use IE, I am not a big fan of it)
  2. Hi All, So I have created a small autoIT script to enter pin into a RSA token(app which generate new code every 30 second), and copy the generated code. I have a java application which requires this code so every time my java-code requires this RSA code, it runs the autoIT script and the copied generated code is then used in my java application. I have deployed this code on a windows server and it works fine when I am logged in and the window is on focus, But as soon as I schedule task and disconnect the server (not logged out only disconnect), or even minimize the server window, the autoIT scripts fails and its not able to copy the value. Please find below the code for AUTOIT. WinActivate("rsa - RSA SecurID Token") ; activates the window that has old in the tilte bar WinWaitActive("rsa - RSA SecurID Token") ; waits until the window is the active window Send("1111") ; simulates pressing the Home key, enters password to get the code Send("{ENTER}") ; simulates pressing the Enter key Sleep(1000) ; Send("^c") ; simulates pressing the CTRL+c keys (copy) Also I saw some post regarding that WINACTIVE only works when window is active. But my below AUTO IT script to handle windows pop up works perfectly fine when the server is disconnected. Opt("WinTitleMatchMode", 1) WinWait("https://url","","10") WinWaitActive("https://url","","10") Sleep(2000) Send("userid") Sleep(1000) Send("{TAB}") Sleep(1000) Send("passwrd") Send("{TAB}") Sleep(500) Send("{ENTER}")
  3. Hi All, I am new to this AUTO IT and I have created a script that will open an app,enter pin and copy the code generated to clipboard. My java code call this autoIT script and use the copied generated code from clipboard. This works fine when server window is on focus. My server is an windows server. But when I minimize or disconnect the server, the script opens the app.exe but doesn't copy any value to clipboard. Can anyone help me on this 😐 Run("C:\Program Files (x86)\RSA SecurID Software Token\SecurID.exe") Local $hWnd=WinWait("abc - RSA SecurID Token") ; waits until the window is the active window $hWin = WinGetHandle("abc - RSA SecurID Token"); ControlSend($hWnd,"","","1111") ; simulates pressing the Home key ControlSend($hWnd,"","","{ENTER}"); ControlSend($hWnd,"","","^c"); Sleep(1000) ; ControlSend($hWnd,"","","^c");
  4. Hi Team, I am trying to send credentials via autoit on a web app launched via IE. I am passing the credentials into variables and trying to send them send("$username") but username field isn't getting populated. But the password field, I can send the credential, also when I try ieformsetvalue and set the username wrt username field fetched, it's getting send but my login button remains greyed out. Can angularjs keydown function interfere in the autoit send process and not allow the credentials passed if it's not typed out? This is a general question to understand if javascript or angular js etc could detect if the credentials are automated, then it might not detect it as a keydown?
  5. Hello gyus, I try to make a code to login in a web page in my job, buy i can’t understand why my form is blocked, this is my code: #include <ButtonConstants.au3> #include <EditConstants.au3> #include <GUIConstantsEx.au3> #include <StaticConstants.au3> #include <StringConstants.au3> #include <WindowsConstants.au3> #include <WinAPIFiles.au3> #include <FileConstants.au3> #include <File.au3> #include <Array.au3> #include <IE.au3> #include <Excel.au3> #include <GuiEdit.au3> #include <GuiStatusBar.au3> #include <DateTimeConstants.au3> #include <Date.au3> #Region ### START Koda GUI section ### Form=C:\noentry\koda_1.7.3.0\Forms\spoa.kxf $Form1 = GUICreate("Eva y Vehículos", 1200, 1000, 10, 10) $prueba = GUICtrlCreateButton("Prueba",10,990,50,20) ;VARIABLES ========================================================================================== $psi = "https://psi.policia.gov.co/PSI/Login.aspx?ReturnUrl=%2fPSI#no-back-button" $chequeVehiculos = "https://psi.policia.gov.co/PSI/frm_lista_chk.aspx" $evaluacionEva = "https://psi.policia.gov.co/PSI/eva_frmver.aspx" $oIE = ObjCreate("Shell.Explorer.2") $GUIActiveX = GUICtrlCreateObj ($oIE, 10, 10, 1180, 980) ;GUICtrlSetState(-1, $GUI_DISABLE) GUISetState(@SW_SHOW) $oIE.navigate($psi) ;_IELoadWait($oIE) _InicioSesion() #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $prueba _InicioSesion() EndSwitch WEnd Func _InicioSesion() Local $username = _IEGetObjByName($oIE, "txtUsuario") Local $pass = _IEGetObjByName($oIE, "txtClave") Local $logina = _IEGetObjByName($oIE, "btnIngresar") $username.value="example" $pass.value="examplepass" _IEAction($logina, 'click') _IELoadWait($oIE) MsgBox(16,"","") EndFunc
  6. Here is the below code for handling pop-up when window is inactive ..but I don't know how to change sleep and when i run this script it runs sometimes and sometimes it stops . ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{SPACE}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{DOWN}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{ENTER}") --- these 3 lines never worked while TAB lines works sometimes but not in accurate way I am new too AutoIt .. help me out why this script behaves in strange way ControlFocus("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1") Sleep(3000) ControlSend("Policy Decisions -- Webpage Dialog", "", "Internet Explorer_Server1","1") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog", "", "Internet Explorer_Server1","the request is send") Sleep(3000) ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") Sleep(3000) ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") Sleep(3000) ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{SPACE}") Sleep(3000) ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") Sleep(3000) ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") Sleep(3000) ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{DOWN}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") Sleep(3000) ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{TAB}") ControlSend("Policy Decisions -- Webpage Dialog","","Internet Explorer_Server1","{ENTER}")
  7. I have an AutoIT script It monitors 2 websites for content that applys to me and the services that I provide. One site is : www.Freelancer.com The other: www.PeoplePerHour.com Both sites publish new jobs on their site hourly or so. My AutoIT app, will view those sites and present new jobs to me in a grid that pops up on my screen. Lately, the app has stopped showing me any jobs from PeoplePerHour. For freelancer.com, Inetget is giving full html but for peopleperhour, now its not coming. Func _CheckPPH() Local Static $hTimer = 0 Local Static $hDownload = 0 Local $aTitlesandUrls = 0 Local Static $sTempFile = "" If $hTimer = 0 Then $hTimer = TimerInit() If $hDownload = 0 Then $sTempFile = _WinAPI_GetTempFileName(@TempDir) ConsoleWrite("Checking PPH..." & @CRLF) ConsoleWrite(">Downloading..." & @CRLF) ;~ $hDownload = InetGet("http://www.peopleperhour.com/freelance-jobs", $sTempFile, $INET_FORCERELOAD, $INET_DOWNLOADBACKGROUND) $hDownload = InetGet("http://www.peopleperhour.com/freelance-jobs", $sTempFile, $INET_FORCERELOAD) ;~ Return 0 EndIf ;~ Sleep(30) ;~ Local $isCompleted = InetGetInfo($hDownload, $INET_DOWNLOADCOMPLETE) ;~ Local $isError = InetGetInfo($hDownload, $INET_DOWNLOADERROR) ;~ Sleep(30) ;~ If TimerDiff($hTimer) > 3000 And $isError Then ;~ ConsoleWrite("!PPH Fail" & @CRLF) ;~ InetClose($hDownload) ;~ $hDownload = 0 ;~ Return 0 ;~ EndIf ;~ Sleep(30) Local $Show = 0 ;~ If TimerDiff($hTimer) > 3000 And $isCompleted Then If $hDownload > 0 Then ConsoleWrite("+Downloaded..." & @CRLF) Local $sPPHHtml = FileRead($sTempFile) $aTitlesandUrls = _StringBetween($sPPHHtml, '"title">' & @LF, 'time>') ;~ _ArrayDisplay($aTitlesandUrls) Local $aPPH[0][4] Local $sTitle = "" Local $sUrl = "" Local $sID = "" Local $sDate = "" Local $iRet=0 Sleep(30) For $i = 0 To UBound($aTitlesandUrls) - 1 $sTitle = _StringBetween($aTitlesandUrls[$i], '<a title="', '" class') $sUrl = _StringBetween($aTitlesandUrls[$i], 'href="', '">') $sDate = _GetDate($aTitlesandUrls[$i]) If IsArray($sTitle) And IsArray($sUrl) Then $sID = _GetID($sUrl[0]) ;~ _ArrayAdd($aPPH, $sDate & "|" & $sTitle[0] & "|" & $sUrl[0] & "|" & $sID) $iRet = _BuildPopupsPPH($sID, $sDate, "PPH: " & $sTitle[0], $sUrl[0]) If $iRet Then $Show+=1 EndIf Next Sleep(30) ;~ If $Show > 0 Then ShowLatestJobs() ;~ _ArrayDisplay($aPPH) FileDelete($sTempFile) InetClose($hDownload) $hDownload = 0 $hTimer = 0 Return $Show EndIf Sleep(30) EndFunc ;==>_CheckPPH
  8. Hello! I have a question , about Mac and Autoit3. I want to convert my script to Mac App,but Aut2Exe just convert to EXE! So I asked if there was a way to convert scripts to MAC App My English isn't very good,so don't laugh please😃
  9. Hello everyone, it has been a while since I have been involved in a serious AutoIt-related project discussion in the forums here, so it feels good to be back at it First a little backstory, a few months back (or a year ago) I made the switch to Linux from Windows... there were several reasons as to why I was motivated to do it, but the main things was Windows 10 was getting out of hand, it didn't offer enough freedom out of the box (restrictive settings, greedy defaults etc.) and had several issues with all kinds of software, many of them mysteriously hard to fix. I did have Linux installed as my secondary operating system for few years at that point and I began to see me regularly use it more than Windows, so one day I went ahead and said "fork it", I have stuck to Linux from that point on as my primary operating system. Windows is still installed in my computer and I also have a virtual machine with the latest version of Windows 10 on it, primarily because I still use Windows to write software using AutoIt as part of my job (freelance). I was pretty sad about the fact that I could no longer use AutoIt to make stuff for myself (since it doesn't run on Linux), I missed sharing code with the community here, this was a great hobby for me as AutoIt is what got me start with programming (even though I had tried several times to get into other languages before, those attempts were never as successful as what I have done in AutoIt). In Linux there is no language which is similar to AutoIt unfortunately, there are a few things which come close but are not on par with AutoIt's ease of use. As some of you may know, I have recently started working on other projects using the C language, it is a great step I have taken and I am learning a lot... but it is still not easy to create quick scripts or programs in C, due to the amount of configuration and dedication it takes to make a C program, also it is not ideal for sharing as multiple source files are involved. And on top of that you still have to deal with platform-specific APIs since C is a low-level language. (Getting back to core of this topic's subject) To solve this issue and to sharpen my programming skills, I could start working on an alternate cross-platform implementation of the AutoIt language which should be backwards compatible with the current AutoIt v3 on C The primary aim in the beginning is to implement all the basic functions (File, String, Numbers etc.) in AutoIt so that it is possible to make basic and fundamental scripts which would work in both Windows and Linux The main features would be: Cross-platform (Linux and Windows with the possibility supporting of Mac) Backward compatible with AutoIt 3 Byte-code based interpreter instead of source interpreter Easy to use (just like the current AutoIt) The advantage of having a byte-code based interpreter is that it makes the interpreter lighter and faster since it doesn't have to deal with parsing the source code, this would also open the door for some compile time optimizations... another bonus thing for those who don't like their source code present inside the compiler binaries is that it should be impossible to get hands on the original source code, this of course does not mean that decompilation can be stopped... it merely means that anyone decompiling would have to reconstruct the code from the byte-code. We can later on implement GUI related functions and maybe even automation related functions if the project gets enough traction I am adding a poll to keep track of people who are willing to invest in this project or would like to see it come into existence. Welcome any comments, suggestions etc. Obviously I will have a lot to learn and my work might interfere with this at times, but with enough interest I can see myself working on this to deliver a very basic prototype which could be used with basic scripts.
  10. back when I was still doing autohotkey you could write (in code) spanisha::á and whenever you were in google docs or notepad you could type (in the document) spanisha and it instantly turns it into á I tried doing this in autoit, here's what I have so far (my entire code so if this language requires a main function or a return/exit to function properly please let me know): ;is this a proper comment? HotKeySet ( "spanisha" , "SendAltered" ) Func SendAltered() Send("á", flag = 0); EndFunc I assume that autoit follows a sort of contemporary hotkey pressing model where you have to hold all keys at the same time? which makes this impossible. So I'm wondering if anyone has a workaround for this? or maybe an alternative to HotKeySet() I have a vague memory of someone saying that doing something like spanisha:á would work. I don't know if I'm slightly off syntax but this doesn't work. Also I tried doing ;is this a proper comment? ;HotKeySet ( "a" , "SendAltered" ) ;spanisha::á Func SendAltered() Send("á"); EndFunc just to try and debug, I'm also wondering if my approach is fundamentally wrong since HotKeySet() was made for something like !^A. Or if Send() is syntactically wrong. I'm also noticing on these forums that specifying installation is important so to whom it may concern I downloaded both installers, editor and main files. Although I'm about to be real mad if the editor installation makes a difference.
  11. I have to press tab to reach a selected button then double click on that Here's my script but its not working: WinActivate("Policy Decisions -- Webpage Dialog","") Sleep(3000) Send("{TAB}") Send("{TAB}") Send("{TAB}") // at this point its working according to my need but double click is not working Mouseclick("Left",510, 320, 2, 0)
  12. TheDcoder

    EasyCodeIt

    Version 0.0.0.1

    40 downloads

    See this thread for info:
  13. Why can I not click on either of my input fields? #Region ### START Koda GUI section ### Form= Global $Form1 = GUICreate("Form1", 730, 437, 192, 124) ;GUISetFont(14, 800, 0, "MS Sans Serif") GUISetBkColor(0xC0DCC0) Global $Label1 = GUICtrlCreateLabel("Enter your Password. UserName is auto filled", 62, 40, 604, 41, $SS_CENTER) GUICtrlSetFont(-1, 26, 800, 0, "MS Sans Serif") Global $Label2 = GUICtrlCreateLabel("User Name:", 120, 130, 604, 31, $SS_LEFT) GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") Global $Label3 = GUICtrlCreateLabel("Password:", 135, 210, 604, 31, $SS_LEFT) GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") Global $Input1 = GUICtrlCreateInput(@UserName, 274, 130, 185, 32) GUICtrlSetFont(-1, 14, 800, 1, "MS Sans Serif") Global $Input2 = GUICtrlCreateInput("Password", 274, 210, 185, 32, $ES_PASSWORD) GUICtrlSetFont(-1, 14, 800, 0, "MS Sans Serif") Global $OK = GUICtrlCreateButton("OK", 274, 270, 185, 57) GUICtrlSetFont(-1, 20, 800, 0, "MS Sans Serif") GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ### While 1 $nMsg = GUIGetMsg() Switch $nMsg Case $GUI_EVENT_CLOSE Exit Case $OK Global $UserName = GUICtrlRead($Input1) Global $PassWord = GUICtrlRead($Input2) ExitLoop EndSwitch WEnd ; Delete the GUI window GUIDelete()
  14. Hello Again! I previously stumbled upon a topic asking for maps datatype's instructions... I too wasn't sure what a map is until I tried it... So I am making this topic to help other newbies (and some oldbies) better understand the Maps datatype of AutoIt! Lets start! A Note for Readers The maps datatype is still in development and is currently in Alpha Stage (More Risky than Beta) and its unstable, so AutoIt can crash indefinably while using Maps! I can't guarantee if this will be implemented in stable versions, this is a fairly new thing to AutoIt coders & in my honest opinion I don't see any use for it Maps are the best datatype in AutoIt, Very Useful ... Not hurting anyone though . Also the maps datatype is DISABLED IN STABLE VERSIONS, So you need to install the latest beta version of AutoIt to make maps work . If you find any bugs while using a map, please report it in the Official Bug Tracker Introduction To Maps Maps are just like arrays, instead they use "keys" to access elements inside them... A key can be either a string or an integer (Other datatypes work too but they are converted to a integer [Equivalent to Int($vKey)] before assignment [Source]). Although Integers don't represent the order of elements in a map unlike in an array... Declaring Maps Its similar to declaring an Array: ; This is the only way to declare a map ; You must have a declarative keyword like Dim/Global/Local before the declaration unless the map is assigned a value from a functions return Local $mMap[] ; Don't insert any numbers or strings it! Simple, Isn't it? Using Maps Using maps is similar to arrays (again!): Local $mMap[] ; Lets declare our map first! ; Adding data to maps is easy... ; This is our key ; | ; v $mMap["Key"] = "Value" ; <--- And our value! ; A key is Case-Sensitive meaning "Key" is not same as "key"! $mMap["key"] = "value" ; Not the same as $mMap["Key"]! ; There are 2 different ways to access an element in a map $mMap["Key"] ; 1st Method $mMap.Key ; 2nd Method Enumerating Maps Its quite easy to enumerate through arrays but what about maps? how can I enumerate through them!? #include <MsgBoxConstants.au3> ; Lets create our map first Local $mMap[] ; Lets add some information to the map, feel free to modify & add new elements $mMap["Name"] = "Damon Harris" $mMap["Alias"] = "TheDcoder" $mMap["Gender"] = "Male" $mMap["Age"] = 14 $mMap["Location"] = "India" $aMapKeys = MapKeys($mMap) ; MapKeys function returns all the keys in the format of an array Local $sProfile = "Profile of " & $mMap["Name"] & ':' & @CRLF ; We will use this string later For $vKey In $aMapKeys ; We use this to get the keys in a map :) $sProfile &= @CRLF & $vKey & ': ' & $mMap[$vKey] ; Add some details to the profile string using our map! Next MsgBox($MB_ICONINFORMATION + $MB_OK, "Profile", $sProfile) ; Finally display the profile :) It is easy as always Multi-Dimensional Maps Now now... I know that you are a little confused that how can an multi-dimensional maps exist... Although I am not 100% sure if its called that but lets continue: #include <MsgBoxConstants.au3> ; Multi-Dimensional maps are just maps in a map Local $mMapOfMapsvilla[] ; This map will store an other map Local $mParkMap[] ; This Park map will be inserted in the Mapsvilla's map :P $mMapOfMapsvilla["Map Item 1"] = "Town Hall" $mMapOfMapsvilla["Map Item 2"] = "Police Station" $mMapOfMapsvilla["Map Item 3"] = "Shopping Mall" $mMapOfMapsvilla["Map Item 4"] = "Residential Area" $mMapOfMapsvilla["Map Item 5"] = "Park" $mParkMap["Map Item 1"] = "Cottan Candy Stand" $mParkMap["Map Item 2"] = "Public Toilet" $mParkMap["Map Item 3"] = "Woods" $mMapOfMapsvilla.Park = $mParkMap MsgBox($MB_OK, "Map Location", $mMapOfMapsvilla["Map Item 1"]) ; Will display Town Hall MsgBox($MB_OK, "Map Location", $mMapOfMapsvilla.Park["Map Item 1"]) ; Will display Cottan Candy Stand I am sure its easy for you to understand now Frequently Asked Questions (FAQs) & Their answers Q #1. Help! My code does not respond to anything (or) I get an "Variable subscript badly formatted" error on the line of declaration... A. DONT USE F5 or Go, Instead use Alt + F5 or Tools -> Beta Run in SciTE (Make sure that you have Beta installed) Q #2. Why are you using "m" in-front of every map variable? A. Best coding Practices: Names of Variables Q #3. What are "Elements" which you mention frequently??? A. This is a newbie question (I have no intention of insulting you ), so I guess you are new to programming. "Elements" are data slots inside a Map (or an Array), you can imagine elements as individual variable which are stored in a Map. You can access them using "keys", Please refer to "Introduction to Maps" section at the starting of this post Q #4. Are Maps faster than Arrays? A. You need to understand that Maps have different purpose than Arrays. Maps are designed to store data dynamically (like storing information for certain controlIDs of GUI) and Arrays are designed to store data in a order (for instance, Storing every character of a string in an element for easy access). If you still want to know then if Maps are faster, then the answer is maybe... Maps are *supposed* (I am not sure ) to be faster in addition of elements (while Arrays are painfully slow while adding or removing elements). Here (Post #24) is a benchmark (Thanks kealper! ) More FAQs coming soon! Feel free to ask a question in the mean while
  15. Hello All, I am new to auto It and coding. Have only tried few automated logging for different websites. The login pages of the websites which I have worked on were having form name with input type as text and it seems straight forward to automate their login using "_IEFormElementSetValue". I have got a url, it does not have any form in the source page. On further analyzing I found that It does call some login page separately as below. function showLogin(arg) { Global.pollingDialogDoc = null; var fresh = jQuery.isValidString(arg) && "fresh" == arg ? !0 : !1, appFrame = $("#appFrame"); if ($("#modalFrame").show(), $("iframe").hide(), fresh || !appFrame.attr('src').match("html/login.html")) appFrame.attr('src', baseURL + 'html/login.html'), appFrame.on('load', function() { setTimeout(function() { $("#modalFrame").hide(), appFrame.show(); }, 1); }); else try { window.frames.appFrame.updatePageFromIndex(); } catch (e) {} } I can simply use "send" and "mouse click" Method to automate the login but that doesn't seems very reliable. Is there any separate way to fill the user ID and password to the respective fields by having reference by frames or something. Appreciate if any one can point me to correct document or help in any way...!
  16. Hi, I have a string like this : Global $Msga = "urrent directory is /send. (Submission of file with log number 29381077284 is confirmed)"; I want to extract the number 29381077284 from the string. I did StringSplit to split based on "(" and then use space to reach there, But it's not a good choice. Can anyone help me with regular expression to find the number from String using AutoIT. TIA
  17. I want wanting to run multiple tests on my company website. Sadly the process I want to automate requires opening a File Explorer to add an attachment. Is there a way in to automate a Chrome opened File Explorer? (I am using webdriver to automate the other 99% of the process just fine. But when I have it click on attach file and chrome opens a file explorer I do not know how to handle it.) Any help would be greatly appreciated.
  18. Hi There ! I have a script here : ;Launch CMD Run("C:\Windows\System32\cmd.exe") sleep(2000) $cmdHandle = WinActivate("C:\Windows\System32\cmd.exe") Sleep(2000) ;Sending document ControlSend($cmdHandle, "", "", "ftp" & @CRLF) ControlSend($cmdHandle, "", "", "open" & @CRLF) Sleep(2000) ControlSend($cmdHandle, "", "", "first command" & @CRLF) Sleep(2000) ControlSend($cmdHandle, "", "", "second-coomand" & @CRLF) first-command and second-command I can't provide cause it's internal. I have complied this .au3 file into an exe and it does the work. But I need to invoke this with Java. Java code I have tried is : ProcessBuilder pb = new ProcessBuilder("C:\\Users\\username\\eclipse-workspace\\Examples\\src\\com\\own\\examples\\etc.exe"); pb.start(); Thread.sleep(5000); Through java it just launches the cmd and nothing happens after that. Please help !!
  19. Hi there, I'm new in AutoIt forms and using AutoIt to automate desktop application (able to automate the application normally but facing issue when I've to re-run the application twice within the same script...so need help in this please) here is the steps then followed by the issue in a brief : 1- run application . 2- do some actions (click menus,activate windows,set texts..) 3- close the application. 4- run the application again & access the same controls. 5- open the same windows again (like step 2) 6- perform some validations (by getting texts from some text boxes) 7- close the application again (and repeat 1-7 for 15 times in average ) The issue * all controls are accessible in the first run and actions done successfully on controls (for steps 1-3) BUT from the second run of the application from step-4 it's able to set focus only the main application window. Note: only unique properties used to while mapping the controls. Error that appear in the console : UIAWrappers.au3" (1673) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.: $x = Int($t[1] + ($t[3] / 2)) $x = Int($t[1] + (^ ERROR Simple spy code of one of the controls that has this strange issue(menubar&view menu Item): ;~ *** Standard code maintainable *** #include "UIAWrappers.au3" AutoItSetOption("MustDeclareVars", 1) _UIA_setVar("oP1","Title:=XXX;controltype:=UIA_WindowControlTypeId;class:=WindowsForms10.Window.8.app") ;main app form xxx _UIA_setVar("oP2","Title:=menuStrip1;controltype:=UIA_MenuBarControlTypeId;class:=WindowsForms10.Window.8.app") ;menuStrip1 ;~ $oUIElement=_UIA_getObjectByFindAll("View.mainwindow", "title:=View;ControlType:=UIA_MenuItemControlTypeId", $treescope_subtree) _UIA_setVar("oUIElement","Title:=View;controltype:=UIA_MenuItemControlTypeId;class:=") ;ControlType:=UIA_MenuItemControlTypeId;classname:=") ;~ Actions split away from logical/technical definition above can come from configfiles ;~_UIA_Action("oP1","highlight") _UIA_Action("oP1","setfocus") ;~_UIA_Action("oP2","highlight") _UIA_Action("oP2","setfocus") _UIA_action("oUIElement","highlight") ;~_UIA_action("oUIElement","click")
  20. hello please i need help i need to open link in default browser only one windows without duplicate if i try to open the same link thanks
  21. We need to automate Silverlight Application. Can we use AutoIT for the same? If yes then how?
  22. Hello All! i suggest to set default encoding in Scite4 for Autoit 3 to UTF 8 with Bom encoding, format recommended also in Autoit Help. In last editor version, when i open new script, for example Czech characters (č, ř, ž) aren't correct. So when i change Encoding to UTF 8 with Bom from Default Code page property state, everithing seems to be OK. Thank you and sorry for potentialy duplicated content. Fenzik
  23. Hi, I am new to AutoIT scripting and I am still learning. I am trying to communicate with a Labview application that acts like a server. it basically takes commands from the client. But for some commands, it also send back some data. When i am sending commands from my script, i can see that the labview is getting them. But i am not able to get anything back. I tried different code pieces that are available online in the forum. This is the working piece of code which i been using to send data. #cs This module is used to establish tcp connection with lab view #ce #include <File.au3> Func SendCmd($cmd) TCPStartup() Local $IpAddress="192.168.10.101" Local $Port="5353" $Labview = TCPConnect($IpAddress,$Port) If @error Then ConsoleWrite('!--> TCPConnect error number ( ' & @error & ' ).' & @CRLF) TCPCloseSocket($Labview) TCPShutdown() Exit EndIf TCPSend($Labview, $cmd & @CRLF) TCPCloseSocket($Labview) TCPShutdown() EndFunc SendCmd("wt42d") This is slightly modified code to send and receive data, which is not working. I am not getting any response back SendCmd("galil") Func SendCmd($cmd) TCPStartup() Local $IpAddress="192.168.10.101" Local $Port="5353" $Labview = TCPConnect($IpAddress,$Port) If @error Then ConsoleWrite('!--> TCPConnect error number ( ' & @error & ' ).' & @CRLF) TCPCloseSocket($Labview) TCPShutdown() Exit EndIf TCPSend($Labview, $cmd & @CRLF) $ip = @IPAddress1 ;create listening socket $Listensocket = TCPListen($ip, $Port) ConsoleWrite("Listening to Socket - " & $Listensocket & @CRLF) If $Listensocket = -1 Then ConsoleWrite("Exiting..." & @CRLF) Exit EndIf ;Accept incoming clients and recieve info While 1 $connectedsocket = TCPAccept($Listensocket) ConsoleWrite("Connecting to Socket - " & $connectedsocket & "Error -" & @error & @CRLF) If $ConnectedSocket >= 0 Then $ip2 = TCPRecv($connectedsocket,1000000) EndIf WEnd TCPCloseSocket($connectedsocket) TCPCloseSocket($Labview) TCPShutdown() EndFunc I am not getting anything back. I am getting the following output in the console +>Setting Hotkeys...--> Press Ctrl+Alt+Break to Restart or Ctrl+BREAK to Stop. Listening to Socket - 544 Connecting to Socket - -1Error -0 Connecting to Socket - -1Error -0 Connecting to Socket - -1Error -0 Connecting to Socket - -1Error -0 Connecting to Socket - -1Error -0 Connecting to Socket - -1Error -0 Connecting to Socket - -1Error -0 Connecting to Socket - -1Error -0 Connecting to Socket - -1Error -0 its going through that loop forever. i need to force stop it. But when i open putty and send the same command, i am getting response right away. Can someone please help me with that. Thanks in advance Regards Yogendra
  24. I need to mute an ongoing call on Microsoft teams without activating the window. Teams allows us to mute using shortcut key Ctrl+Shift+m but only when the window is active. # Used set option as ongoing call can be with any person which leads to change in Title Name. AutoItSetOption ( "WinTitleMatchMode", 2 ) # I am not clear with the control ID which will be good to use here and also the key combination of ^M ControlSend ( "Microsoft Teams", "", "[CLASS:Intermediate D3D Window; INSTANCE:1]", "{ctrl down}") Can anyone help...!!!
×
×
  • Create New...