AutoIt

出自ProgWiki
跳至導覽 跳至搜尋

AutoIt,參照:『維基百科~AutoIt

應用

Hello world

; Make available a library of constant values.
#include <MsgBoxConstants.au3>
 
; Displays "Hello, world!" in a messagebox.
MsgBox($MB_SYSTEMMODAL, "Title", "Hello, world!")

Automating the Windows Calculator

; Make available a library of constant values.
#include <MsgBoxConstants.au3>
 
; Display a message box with a timeout of 6 seconds.
MsgBox($MB_OK, "Attention", "Avoid touching the keyboard or mouse during automation.", 6)
 
; Run the Windows Calculator.
Run("calc.exe")
 
; Wait for the calculator to become active with a timeout of 10 seconds.
WinWaitActive("[CLASS:CalcFrame]", "", 10)
 
; If the calculator did not appear after 10 seconds then exit the script.
If WinExists("[CLASS:CalcFrame]") = 0 Then Exit
 
; Automatically type the current year into the calculator.
Send(@YEAR)
 
; Let's slow the script down a bit so we can see what's going on.
Sleep(600)
 
; Automatically type in 'divide by 4', and then sleep 600 ms.
Send("/4")
Sleep(600)
 
; Hit the return key to display the result, and sleep 600 ms.
Send("{ENTER}")
Sleep(600)
 
; Copy the result to the clipboard using the Windows shortcut Ctrl+C.
Send("^c")
 
; Declare, and assign the contents of the clipboard to, a variable.
Local $fResult = ClipGet()
 
; Check to see if the variable contains a decimal point or not.
If StringInStr($fResult, ".") Then
    ; Display a message box with a timeout of 5 seconds.
    MsgBox($MB_OK, "Leap Year", @YEAR & " is not a leap year.", 5)
Else
    ; This message will only display if the current year is a leap year.
    MsgBox($MB_OK, "Leap Year", @YEAR & " is a leap year.", 5)
EndIf
 
; Close the Windows calculator - always tidy up afterwards.
WinClose("[CLASS:CalcFrame]")

Find average

; Find Average by JohnOne, modified by czardas
#include <MsgBoxConstants.au3>
 
_Example() ; Run the example.
 
Func _Example()
    ; Display an input box and ask the user to enter some numbers separated by commas.
    Local $sInput = InputBox("Find Average", "Enter some numbers separated by commas: 1,2,42,100,3")
 
	; If an error occurred then exit the script.
	If @error Then Exit
 
    ; Populate an array with the user's input.
    Local $aSplit = StringSplit($sInput, ",")
 
    ; Pass the array to the function _Find_Average() and then check for errors.
    Local $fAverage = _Find_Average($aSplit)
    If @error Then Exit
 
    ; Display the result in a message box.
    MsgBox($MB_OK, "Find Average", "Result: " & $fAverage)
EndFunc   ;==>_Example
 
Func _Find_Average($aArray)
    ; If the input is not of the correct type (an array), then return an error along with the details.
    If Not IsArray($aArray) Then Return SetError(1, 0, VarGetType($aArray))
	; More detailed checks are possible, but for brevity just one is performed here.
 
    ; Declare a variable to store the sum of the numbers.
    Local $iArraySum = 0
 
    ; Loop through the array.
    For $i = 1 To $aArray[0]
        ; Increment the sum by the number in each array element.
        $iArraySum += Number($aArray[$i])
    Next
 
    ; Return the average rounded to 2 decimal places.
    Return Round($iArraySum / $aArray[0], 2)
EndFunc   ;==>_Find_Average