The London Perl and Raku Workshop takes place on 26th Oct 2024. If your company depends on Perl, please consider sponsoring and/or attending.

NAME

Win32::AutoItX::Control - OO interface for Window Controls

SYNOPSIS

    use Win32::AutoItX;

    my $a = Win32::AutoItX->new;

    my $pid = $a->Run('calc.exe');
    my $window = $a->get_window('Calculator');
    $window->wait;
    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;
    }

    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');

    $button_2->click;
    $button_3->click;
    $button_plus->click;
    $button_3->click;
    $button_2->click;
    $button_eq->click;

    print "23 + 32 = ", $result->text, "\n";

DESCRIPTION

Win32::AutoItX::Control provides an object-oriented interface for AutoItX methods to operate with Window Controls.

METHODS

new

    $control = Win32::AutoItX::Control->new(
        $autoitx, $window_title, $window_text, $control_id
    )

creates the control object.

listview

    $listview = $control->listview()

returns a Win32::AutoItX::Control::ListView object for the control.

treeview

    $treeview = $control->treeview()

returns a Win32::AutoItX::Control::TreeView object for the control.

click

    $control->click()
    $control->click($button, $clicks, $x, $y)

sends a mouse click command to a given control. $button is the button to click: "left" (by default), "right" or "middle". $clicks is the number of times to click the mouse (default is 1). $x and $y is the position to click within the control (default is center).

Note: Some controls will resist clicking unless they are the active window. Use the $window->active() to force the control's window to the top before using click()).

Using 2 for the number of clicks will send a double-click message to the control - this can even be used to launch programs from an explorer control!

disable

    $control->disable()

disables or "grays-out" the control.

enable

    $control->enable()

enables a "grayed-out" control.

focus

    $control->focus()

sets input focus to a given control on a window.

handle

    $handle = $control->handle()

retrieves the internal handle of the control.

x

    $x = $control->x()

retrieves the X coordinate of the control relative to it's window.

y

    $y = $control->y()

retrieves the Y coordinate of the control relative to it's window.

width

    $width = $control->width()

retrieves the width of the control.

height

    $height = $control->height()

retrieves the height of the control.

text

    $text = $control->text()

retrieves text from the control.

set_text

    $control->set_text($text)

sets text of the control.

hide

    $text = $control->hide()

hides the control.

show

    $control->show()

shows a control that was hidden.

move

    $control->move($x, $y)
    $control->move($x, $y, $width)
    $control->move($x, $y, $width, $height)

moves a control within a window.

send

    $control->send($string)
    $control->send($string, $flag)

sends a string of characters to the control. If $flag is true send a raw $string otherwise special characters like + or {LEFT} mean SHIFT and left arrow.

command

    $result = $control->command($command, $option)

sends a command to the control.

is_visible

    $boolean = $control->is_visible()

returns true if the control is visible.

is_enabled

    $boolean = $control->is_enabled()

returns true if the control is enabled.

show_dropdown

    $control->show_dropdown()

drops a ComboBox.

hide_dropdown

    $control->hide_dropdown()

undrops a ComboBox.

add_string

    $control->add_string($string)

adds a string to the end in a ListBox or ComboBox.

del_string

    $control->del_string($occurrence)

deletes a string according to occurrence in a ListBox or ComboBox.

find_string

    $control->find_string($string)

returns occurrence ref of the exact string in a ListBox or ComboBox.

set_selection

    $control->set_selection($occurrence)

sets selection to occurrence ref in a ListBox or ComboBox.

select_string

    $control->select_string($string)

sets selection according to string in a ListBox or ComboBox.

is_checked

    $boolean = $control->is_checked()

returns true if a Button is checked.

check

    $control->check()

checks a radio or check Button.

uncheck

    $control->uncheck()

unchecks a radio or check Button.

line_number

    $current_line_number = $control->line_number()

returns the line # where the caret is in an Edit.

column

    $current_column = $control->column()

returns the column # where the caret is in an Edit.

selection

    $current_selection = $control->selection()

returns name of the currently selected item in a ListBox or ComboBox.

line_count

    $line_count = $control->line_count()

returns # of lines in an Edit.

line

    $text = $control->line($line_number)

returns text at line # passed of an Edit.

selected

    $text = $control->selected()

returns selected text of an Edit.

paste

    $control->paste($string)

pastes the 'string' at the Edit's caret position.

tab

    $current_tab = $control->tab()

returns the current Tab shown of a SysTabControl32.

tab_right

    $control->tab_right()

moves to the next tab to the right of a SysTabControl32.

tab_left

    $control->tab_left()

moves to the next tab to the left of a SysTabControl32.

AutoItX native methods

This module also autoloads all AutoItX methods. For example:

    $control->WinActivate($win_title) unless $control->WinActive($win_title);

Please see AutoItX Help file for documenation of all available methods.

SEE ALSO

Win32::AutoItX::Control::ListView
Win32::AutoItX::Control::TreeView
Win32::AutoItX::Window
Win32::AutoItX
AutoItX Help

AUTHOR

Mikhail Telnov <Mikhail.Telnov@gmail.com>

COPYRIGHT

This software is copyright (c) 2017 by Mikhail Telnov.

This library is free software; you may redistribute and/or modify it under the same terms as Perl itself.