autoit_v3_your_quick_guide.pdf

(728 KB) Pobierz
AutoIt v3: Your Quick Guide
AutoIt v3: Your
Quick Guide
Contents
Introduction and AutoIt
History .......................................... 2
Variables and Includes ................... 2
Graphical User Interfaces
(GUIs) ......................................... 10
Automation Examples .................. 35
Conclusion .................................. 55
by Andy Flesner
Copyright © 2007 O’Reilly Media, Inc.
ISBN: 978-0-596-51512-6
Released: September 14, 2007
AutoIt is becoming increasingly popular
in the system administration field as a
tool for automating administrative tasks.
Although this is one of its more popular
uses, you can use AutoIt to automate
anything in a Windows environment.
This powerful scripting language can run
any program and manipulate keyboard
and mouse input. With its RunAs sup-
port, administrators can perform unat-
tended installations and configuration
changes using embedded administrative
privileges.
This guide teaches you the foundations
of the AutoIt v3 language. You will learn
about variables and includes, graphical
user interfaces, user-defined functions,
and conditional and loop statements.
You will then apply what you have
learned in examples related to the system
administration field. The examples in
this Short Cut can be used to create any-
thing from a game modification to a log-
on script that verifies Windows updates.
Find more at shortcuts.oreilly.com
401140174.004.png 401140174.005.png 401140174.006.png
Introduction and AutoIt History
AutoIt started in late 1998 as a C-compiled program used to automate keystrokes
during software installations. In January 1999, the AutoIt team released AutoIt v1,
which included the Send , Run , RunWait , WinWait , WinWaitClose , WinWaitActive ,
WinHide , WinActivate , WinClose , WinRestore , Sleep and SetKeyDelay functions. Au-
toIt v2 was released in August that same year and included the first version of
AutoItX, which offered DLL/COM control. Over the next two years, massive up-
dates to AutoIt v2 added many new functions to the language. In May 2001, the
AutoIt source code was completely rewritten in C++ and development stalled until
2003, when the first beta version of AutoIt v3 was released. Over 100 beta versions
later, the AutoIt developers released AutoIt v3 in February of 2004. February of
2005 marked the release of AutoIt v3.1.0, which added the capability of graphical
user interface (GUI) creation. This version was the most notable release because
it brought AutoIt to the forefront of the scripting world and made it a rival to Visual
Basic Scripting, batch files, and other popular scripting languages. AutoIt is free
to use and has a strong and helpful community base.
This Short Cut is a guide for AutoIt v3.2.4.9, released on May 25, 2007. Download
the latest version of AutoIt here: http://www.autoitscript.com/autoit3/down
I recommend using the SciTE AutoIt3 Editor for writing scripts. It has an extensive
help file and color-codes everything nicely. You can download the latest SciTE
Variables and Includes
A variable is simply a named placeholder for a string or array of data. You can use
a variable as many times as you need within a script and it only requires declaration
once. This allows you to manage and manipulate data in a centralized location if
desired.
Variables are a necessity if you want to write robust scripts that are fairly simple
to modify. For example, defining a filename as a variable allows you to change the
filename from a single location instead of changing many static entries. (Using
static data entries can lead to problems.) Example 1 installs two Windows XP
Security updates. Example 2 performs the same operations, but does so using
variables. You may not yet understand everything displayed in the examples; they
are only meant to show that replacing filenames with variables is one way to sim-
plify your code.
AutoIt v3: Your Quick Guide
2
401140174.007.png
Example 1. Windows Update Automation
If @Username <> "Administrator" Then
RunAsSet( "Administrator",@ComputerName,"password" )
install ()
RunAsSet()
Else
install ()
EndIf
Func install ()
RunWait( "Windows Update 1.exe /passive /norestart" )
RunWait( "Windows Update 2.exe /passive /norestart" )
EndFunc
Example 2. Windows Update Automation Using Variables
Global $admin , $password , $program , $program2
$admin = "Administrator"
$password = "password" ; change password to the password for the
Administrator account
; change the following program names to the actual filenames of 2 Windows updates
$program = "Windows Update 1.exe /passive /norestart"
$program2 = "Windows Update 2.exe /passive /norestart"
If @Username <> "Administrator" Then
RunAsSet($admin ,@ComputerName, $password)
install ()
RunAsSet()
Else
install ()
EndIf
Func install ()
RunWait($program)
RunWait($program2)
EndFunc
Note how modifying the variables listed in the variable declarations can change
the program names. This practice becomes more useful as you develop more com-
plicated scripts.
Variable Types—Dim, Global, and Local
There are three types of variables in AutoIt:
Dim
Declaring a variable using Dim gives it the scope of its current location within
the script. If the variable is declared outside any functions, its scope is global.
AutoIt v3: Your Quick Guide
3
401140174.001.png
The following is an example of declaring a Dim variable in the global scope. It
runs setup.exe in the directory where the script is located:
Dim $variable = @ScriptDir & "\setup.exe"
Run($variable)
The next example shows how declaring a Dim variable inside a function allows
it only Local scope and how the variable is destroyed once the function is com-
plete. The result is a script that errors out when run because $variable is not
declared globally:
function ()
Func function ()
Dim $variable = @ScriptDir & "\setup.exe"
EndFunc
Run($variable)
You should explicitly declare variables as Global or Local to avoid problems. If
a Dim variable is declared inside a function but a Global variable already exists,
the Global variable is overwritten. The following example shows what happens
if a Global variable exists when the same variable is declared as Dim within a
function. The result is that setupbad.exe runs instead of setup.exe ; the Global
$variable is modified to setupbad.exe because Dim was used to declare the var-
iable locally within the function:
Global $variable = @ScriptDir & "\setup.exe"
function ()
Func function ()
Dim $variable = @ScriptDir & "\setupbad.exe"
EndFunc
Run($variable )
Global
This type of variable can be read from or written to from anywhere in the script.
Global variables can be used in functions without being destroyed when the
functions complete. The following is an example of declaring a Global variable:
Global $variable = 2
Local
A Local variable is used in the scope of a function. Once the function is com-
plete, the variable is destroyed. If a Global variable of the same name already
AutoIt v3: Your Quick Guide
4
401140174.002.png
exists, the function modifies the Global variable and it is not destroyed when
the function completes. Variables are always checked in the local scope first,
then in the global scope. The following example shows the use of a Local var-
iable within a function:
function ()
Func function ()
Local $variable = @ScriptDir & "\setup.exe"
Run($variable)
EndFunc
AutoIt Variable Explicit Declaration Is Not Required
AutoIt does not require the explicit declaration of variables. However, as a
debugging measure it is wise to explicitly declare all variables used within a
script. If you do not explicitly declare variables, it can become very difficult
to find a mistyped variable name that may be causing your script to error on
execution. You should include the following in your scripts to require the
explicit declaration of variables in order to avoid bugs:
Opt("MustDeclareVars", 1)
With this option enabled, all variables must now be explicitly declared using
Global , Local , or Dim .
Constants
A constant is a variable that never changes. It remains a static value for the entire
script execution. You cannot change the value of a constant, nor can you convert
an existing variable into a constant. Placing Const after Dim, Global or Local makes
the variable a constant. You can also declare a constant variable without explicit
declaration. The following example illustrates how to declare a constant variable
in each scenario:
Const $example = 0
Dim Const $example1 = 1
Global Const $example2 = 2
Local Const $example3 = 3
Arrays
An array is a matrix of data in which all the elements are of the same data type and
size. For example, an array of two numbers—“5” and “3”—is declared as follows:
$num[0] = "5"
$num[1] = "3"
AutoIt v3: Your Quick Guide
5
401140174.003.png
Zgłoś jeśli naruszono regulamin