Win32::AutoItX
Win32::AutoItX is a perl wrapper for the AutoItX (COM/ActiveX version of the well-known utility AutoIt v3 for automating the Windows GUI).
Requirements
- Installed AutoIt v3 or registered AutoItX3.dll library
- Win32::OLE
- Win32::API
- Scalar::Util (Perl core module)
- Carp (Perl core module)
Installation
perl Makefile.PL && make install
Usage
#!/usr/bin/perl
use strict;
use warnings;
use Win32::AutoItX;
my $a = Win32::AutoItX->new;
### AutoItX native methods ###
# Run an application
my $pid = $a->Run('calc.exe');
# Manage the clipboard
my $clipboard_text = $a->ClipGet;
$a->ClipPut("Win32::AutoItX rulez!");
# Work with screen pixels
my $color = $a->PixelGetColor(42, 42);
### Perlish methods ###
# Find window by title
my $window = $a->get_window('Calculator');
$window->wait;
# Show info about all window's controls
for my $control ($window->find_controls) {
local $\ = "\n";
print "Control $control";
print "\thandle: ", $control->handle;
print "\ttext: ", $control->text;
print "\tx: ", $control->x, "\ty: ", $control->y;
print "\twidth: ", $control->width, "\theight: ", $control->height;
}
# Get controls by text and class (optionally)
my $button_2 = $window->find_controls('2', class => 'Button');
my $button_3 = $window->find_controls('3', class => 'Button');
my $button_plus = $window->find_controls('+', class => 'Button');
my $button_eq = $window->find_controls('=', class => 'Button');
my $result = $window->find_controls('0', class => 'Static');
# Interact with controls
$button_2->click;
$button_3->click;
$button_plus->click;
$button_3->click;
$button_2->click;
$button_eq->click;
print "23 + 32 = ", $result->text, "\n";
See also
AutoIt v3 online documentation
Author
Licensing
Please see the file called LICENSE.