Перейти из форума на сайт.

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)

Модерирует : gyra, Maz

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
На первую страницук этому сообщениюк последнему сообщению

   

madmasles

Advanced Member
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

Код:
Opt('MustDeclareVars', 1)
 
_MouseClick_To_Control_Color('[Title:Ad Muncher Configuration; Class:#32770]', _
        '14607074', '[CLASS:Static; INSTANCE:24]', 'вернуть', 'любая', 'три', 'быстро')
;_MouseClick_To_Control_Color('[Title:Ad Muncher Configuration; Class:#32770]', 0xDEE2E2)
;_MouseClick_To_Control_Color('[Title:µTorrent 3.0; Class:µTorrent4823DF041B09]', 0xABD679, '[CLASS:SysListView32; INSTANCE:2]', False)
If @error Then
    MsgBox(16, 'Error: ' & @error, '_MouseClick_To_Control_Color')
Else
    MsgBox(64, 'Info', 'OK')
EndIf
 
Func _MouseClick_To_Control_Color($v_WinH_T, $i_Color, $v_Control = '', $f_Move = True, $s_Button = 'primary', $i_Clicks = 1, $i_Speed = 0)
    #cs
        Должна кликнуть по цвету на элементе окна.
        1. $v_WinH_T: Handle (вида - 0x000B03FA) или
        Заголовок окна (вида - 'Ad Muncher Configuration' или '[Title:Ad Muncher Configuration; Class:#32770]').
        2. $i_Color: цвет на элементе (вида - 0xDEE2E2 или '0xDEE2E2' или 14607074), желательно,
        чтобы он был уникальным на элементе (окне), иначе возможны ошибки.
        3. $v_Control: элемент окна (вида - '[CLASS:Static; INSTANCE:24]', или 'Static24', или 168 (ID).
        !!!Если не указан (''), то будет искать цвет на всей клиентской части окна!!!.
        Опционально:
        4. $s_Button: кнопка мыши (по умолчанию 'primary'). Если неправильное значение
        (не входит в массив $a_Button - см. ниже), то будет кликать кнопкой 'primary'
        5. $f_Move: True (или любое не пустое значение) - вернет курсор на прежнее место,
        False (0 или '') - нет (по умолчанию True).
        6. $i_Clicks: кол-во кликов (по умолчанию 1).
        7. $i_Speed: скорость перемещения курсора мыши в диапазоне от 1 - быстро до 100 - медленно (по умолчанию мгновенно).
        Успех:
        ничего не возвращает и флаг @error = 0.
        Неудача:
        флаг @error <> 0.
    #ce
   Local $i_Opt_M, $i_Opt_P, $a_Pos_Control, $a_Coord, $a_OldPosM, $f_ErrorButton = True, _
            $a_Button[8] = [7, 'left', 'right', 'middle', 'main', 'menu', 'primary', 'secondary'], _
            $i_Xl, $i_Yt, $i_Xr, $i_Yb
 
    For $i = 1 To $a_Button[0]
        If $s_Button == $a_Button[$i] Then
            $f_ErrorButton = False
            ExitLoop
        EndIf
    Next
    If $f_ErrorButton Then $s_Button = $a_Button[6]
    If Number($i_Color) < 0x000000 Or Number($i_Color) > 0xFFFFFF Then Return SetError(1)
    If Not $v_WinH_T Then Return SetError(2)
    If Not IsHWnd($v_WinH_T) Then
        If WinExists($v_WinH_T) Then
            $v_WinH_T = WinGetHandle($v_WinH_T)
            If Not $v_WinH_T Then Return SetError(3)
        Else
            Return SetError(4)
        EndIf
    EndIf
    If Not BitAND(WinGetState($v_WinH_T), 2) Then Return SetError(5)
    If $v_Control Then
        $a_Pos_Control = ControlGetPos($v_WinH_T, '', $v_Control)
        $i_Xl = $a_Pos_Control[0]
        $i_Yt = $a_Pos_Control[1]
        $i_Xr = $a_Pos_Control[0] + $a_Pos_Control[2]
        $i_Yb = $a_Pos_Control[1] + $a_Pos_Control[3]
    Else
        $a_Pos_Control = WinGetClientSize($v_WinH_T)
        $i_Xl = 0
        $i_Yt = 0
        $i_Xr = $a_Pos_Control[0]
        $i_Yb = $a_Pos_Control[1]
    EndIf
    If @error Then Return SetError(1)
    If Not WinActive($v_WinH_T) Then WinActivate($v_WinH_T)
    If Not WinWaitActive($v_WinH_T, '', 2) Then Return SetError(6)
    If $f_Move Then
        $a_OldPosM = MouseGetPos()
    EndIf
    $i_Opt_M = Opt('MouseCoordMode', 2)
    $i_Opt_P = Opt('PixelCoordMode', 2)
    $a_Coord = PixelSearch($i_Xl, $i_Yt, $i_Xr, $i_Yb, $i_Color, 0, 1, $v_WinH_T)
    If @error Then Return SetError(7)
    If Not Number($i_Clicks) Then $i_Clicks = 1
    MouseClick('Left', $a_Coord[0], $a_Coord[1], $i_Clicks, $i_Speed)
    Opt('MouseCoordMode', $i_Opt_M)
    Opt('PixelCoordMode', $i_Opt_P)
    If $f_Move Then
        MouseMove($a_OldPosM[0], $a_OldPosM[1], 0)
    EndIf
EndFunc   ;==>_MouseClick_To_Control_Color

Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 14:44 01-11-2011 | Исправлено: madmasles, 01:57 02-11-2011
   

На первую страницук этому сообщениюк последнему сообщению

Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 3)
gyra (23-01-2020 10:51): AutoIT (Часть 4)


Реклама на форуме Ru.Board.

Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
Modified by Ru.B0ard
© Ru.B0ard 2000-2024

BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

Рейтинг.ru