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

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

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

gyra (23-01-2020 10:51): AutoIT (Часть 4)  Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

   

Widok



Moderator-Следопыт
Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору

 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


     
    За шапкой следит ViSiToR / AZJIO  

  • Всего записей: 24190 | Зарегистр. 07-04-2002 | Отправлено: 13:07 01-06-2010 | Исправлено: Maz, 12:29 10-01-2020
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    XOBAH
    Удобнее компилировать используя AutoIt3Wrapper, а иконку указывать в самом скрипте в параметрах AutoIt3Wrapper, так делают все.
    Посмотри скрин контекстного меню и мой вариант комплектации автоита.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 07:59 13-12-2010
    VamPIr4eg174



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

    Цитата:
    КАК ДОСРОЧНО ОТКЛЮЧИТЬ ВЫПОЛНЕНИЕ СКРИПТА?!  


    Цитата:
    Где в свойствах ярлыка находится поле "Быстрый вызов" ?!  

     
    AZJIO - ответь!)

    Всего записей: 10 | Зарегистр. 09-12-2010 | Отправлено: 13:21 13-12-2010
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    есть ли XML-RPC для Autoit? может кому попадалось...

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 15:05 13-12-2010 | Исправлено: Kar1son, 15:06 13-12-2010
    adminchik2010

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!  
    Помогите написать скрипт который:  
    1)Запускает приложение.  
    2)Поочередно открывает каждый элемент его проводника в отдельном окне(стать левой клавишей мыши на элемент проводника, после нажать правую клавишу и выбрать "Open in new window")  
    Вот начало:  
       
    Dim WS  
    Set WS = WScript.CreateObject("WScript.Shell")  
    WS.run chr(34)+"C:\Program Files\System Center Operations Manager 2007\Microsoft.MOM.UI.Console.exe"+chr(34)  
    WshShell.SendKeys("My Workspace")  
       
    Заранее спасибо!

    Всего записей: 6 | Зарегистр. 17-11-2010 | Отправлено: 15:06 13-12-2010
    AZJIO



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

     
    Если в SciTE по F5 запустил, то можно Ctrl+Pause_Break принудительно завершить выполняемый скрипт.  
    Я в Notepad++ всегда делаю, поэтому у меня на видном месте ярлык батника или сам батник в папке тестируемого скрипта. С ярлыка вызов горячей клавиши после перезагрузке долго думает.
     
    adminchik2010

    Код:
    Run('C:\Program Files\System Center Operations Manager 2007\Microsoft.MOM.UI.Console.exe') ; старт проги
    WinWaitActive('Title_Microsoft', '', 5) ; ждем 5 сек открытие окна
    If Not WinActive('Title_Microsoft') Then Exit ; если окно не открыто, то завершаем скрипт
    Send("^o") ; Ctrl+o - открываем диалог "Открыть файл"
    Sleep(100) ; ожидаем 0.1 сек, хотя рекомендуется детектить по имени окна, используя WinWaitActive
    Send("{DOWN 4}") ; стрелка вниз 4 раза - переход на нужный файл передвигая курсор стрелкой клавиатуры
    Send("+{F10}") ; Shift+F10 - вызов контекстного меню элемента
    Send("{DOWN 2}") ; стрелка вниз 2 раза - выбор пункта "Открыть в новом окне"
    Send("{Enter}") ; кликаем по пункту

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 15:17 13-12-2010 | Исправлено: AZJIO, 15:48 13-12-2010
    VamPIr4eg174



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

    Цитата:
    Если в SciTE по F5 запустил, то можно Ctrl+Pause_Break принудительно завершить выполняемый скрипт.  
    Я в Notepad++ всегда делаю, поэтому у меня на видном месте ярлык батника или сам батник в папке тестируемого скрипта. С ярлыка вызов горячей клавиши после перезагрузке долго думает.  

     
    Ой ё... я начинающий, и не пойму про какие "бантики" ты говоришь?!
     
    Но я так и не разобрался, как отключить выполняемый скомпилированный скрипт ?  
     

    Всего записей: 10 | Зарегистр. 09-12-2010 | Отправлено: 16:29 13-12-2010
    AZJIO



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

    Цитата:
    и не пойму про какие "бантики"
    а как же гугля?
    И там же ясно дана строчка - taskkill.exe /F /IM AutoIt3.exe, а не какой не скрипт.exe. Файл *.bat выполняет команду завершения процесса AutoIt3.exe. Там без разницы, какое имя скрипта, все они запускаются исполняемым файлом AutoIt3.exe, и если он будет "убит", то все скрипты запущенные с автоитом будут завершены независимо от имени.
     
    Добавлено:
    Чтоб убить Skrip1.exe, то команда такая: taskkill.exe /F /IM Skrip1.exe

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 17:10 13-12-2010 | Исправлено: AZJIO, 17:13 13-12-2010
    VamPIr4eg174



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

    Цитата:
    AZJIO

    Всё, СПС понял - работает!

    Всего записей: 10 | Зарегистр. 09-12-2010 | Отправлено: 17:25 13-12-2010
    Kar1son

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

    Код:
                While 1
                        $msg = GUIGetMsg()
                        Select
                            Case $msg = $hButton1
                                    $hForm=GuiCreate()
                                    GUISetState()
                                    While 1
                                         $msg = GUIGetMsg()
                                         Select
                                             Case $msg = $GUI_EVENT_CLOSE
                                             ExitLoop
                                             EndSelect
                                    WEnd
     
                        EndSelect
                    WEnd
     

    если создать GUI а в нем кнопку по которой создается второе GUI то потом $GUI_EVENT_CLOSE во втором гуи не срабатывает... как быть? как его закрывать?
     
     
     
    .......... сори все работает, у меня была ошибка в логике скрипта

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 10:06 14-12-2010 | Исправлено: Kar1son, 10:16 14-12-2010
    ynbIpb



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

    Код:
    #include <GUIConstants.au3>
    #include <WindowsConstants.au3>
     
    $Form1 = GUICreate("Form1", 347, 182, 193, 125)
    $Button1 = GUICtrlCreateButton("Button1", 24, 136, 75, 25, 0)
    $Form2 = GUICreate("Form2", 344, 161, 196, 344, -1, $WS_EX_TOOLWINDOW, $Form1)
    GUISetBkColor ( 0x21FFAD , $Form1)
     
    GUISetState(@SW_SHOW, $Form1)
     
    While 1
        $nMsg = GUIGetMsg(1)
        Switch $nMsg[0]
            Case $GUI_EVENT_CLOSE
                If $nMsg[1] = $Form1 Then Exit
                If
    $nMsg[1] = $Form2 Then GUISetState(@SW_HIDE, $Form2)
            Case $Button1
                If Not BitAND(WinGetState($Form2), 2) Then
                    GUISetState(@SW_SHOW, $Form2)
                Else
                    GUISetState(@SW_HIDE, $Form2)
                EndIf
        EndSwitch
    WEnd


    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 10:57 14-12-2010
    ndch

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Реально ли реализовать средствами сабжа такое:
    Активное окно программы программа.ехе, хочется нажать кнопки win+1 что бы при этом "сэмулировалось нажатие ряда кнопок" ? И так некоторое количество раз.

    Всего записей: 7000 | Зарегистр. 31-08-2008 | Отправлено: 15:53 14-12-2010 | Исправлено: ndch, 15:53 14-12-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son
    Посмотри у меня в коллекции файл "MsgBox в виде функции дочернего GUI.au3", удобство в том, что после закрытия дочернего окна все его переменные уничтожаются.
     
    _________________
    Обновил ContMenuFiles, добавлены операции с группами.
     
    сделал функцию проверки существования раздела

    Код:
    ; #include <Registry_UDFs.au3>
     
    $aType=StringSplit('txt|zz3', '|')
     
    For $i = 1 to $aType[0]
        $key='HKEY_CLASSES_ROOT\.'&$aType[$i]
        _query_key($key)
        ; _RegKeyEmpty($key)
        If @error Then
            MsgBox(0, 'Message', 'раздел НЕ существует')
        Else
            MsgBox(0, 'Message', 'раздел существует')
        EndIf
    Next
     
    Func _query_key($key)
        Local $Err1
        $Err1=2
        RegEnumKey($key, 1)
        If @error Then $Err1-=1
        RegEnumVal($key, 1)
        If @error Then $Err1-=1
        If $Err1=0 Then SetError(1)
    EndFunc

     
    ViSiToR
    Перед отправкой своей функции посмотрел у тебя в Registry_UDFs.au3 функция _RegKeyEmpty($s_Key) наиболее похожа, но видимо она не делает проверку существования. А функция _RegKeyExists проверяет не раздел а пустой параметр.
     
    Добавлено:
    ndch
    да такое возможно, посмотри в справке HotKeySet и Send. Первая назначает горячую клавишу, вторая эмулирует нажатия клавиатуры.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 16:15 14-12-2010
    Orion_76



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Просветите пожалуйста, на Autoit можно консольную прогу написать? т.е. например чтоб запустить с консоли (cmd) и и результат в консоль выводила?
    Как я понял stdread и stdwrite только для child-процессов работают?

    Всего записей: 386 | Зарегистр. 02-11-2007 | Отправлено: 12:56 15-12-2010
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Orion_76, кроме этих функци есть еще:
    ConsoleWrite ( "data" )
    ConsoleRead ( [peek = false[, binary = false ]])

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 13:10 15-12-2010
    Orion_76



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb
    И компилить надо с параметром : #AutoIt3Wrapper_Change2CUI=y

    Всего записей: 386 | Зарегистр. 02-11-2007 | Отправлено: 14:04 15-12-2010
    Kar1son

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb
    скрипт из справки  

    Код:
    Local $var = "Test"
    ConsoleWrite("var=" & $var & @CRLF)
     

    мне при запуске из cmd ничего не пишет

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 14:20 15-12-2010
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Kar1son 14:20 15-12-2010
    Цитата:
    при запуске из cmd ничего не пишет

    Нужно компилировать в режиме CUI (при компиляций с Aut2Exe есть такая возможность, или использовать директиву #AutoIt3Wrapper_Change2CUI=y как указал Orion_76.

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 15:19 15-12-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    переводчик - ещё немного обновил твой вариант. Вобщем жаль, что столкнулся с ограничением количества переводимых символов. Надо в джава-скриптах разбираться, там если количество символов более 376, то ссылка имеет другой вид, а текст передаётся каким-то другим способом.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 18:40 15-12-2010 | Исправлено: AZJIO, 12:58 11-10-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 16:15 14-12-2010
    Цитата:
    у тебя в Registry_UDFs.au3

    Библиотека старая, давно не обновлялась, в ней многое нужно переделывать
     
    18:40 15-12-2010
    Цитата:
    переводчик

    Эх, так и не удалось мне понять причину использщований прямых значений констант, оно портит “читаемость” скрипта.
     
    Я пожалуй придержусь пока такой версий (некоторые поправки связанные с entities, и поддержка автораспознавания текста котрый нужно переводить):
     
    Google_Translator.au3

    ----------
    ViSiToR a.k.a CreatoR
    CreatoR это не ник, CreatoR это стиль жизни!

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 23:49 15-12-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    строка 120 - ошибка... исправил как-то, теперь 113 - опять ошибка.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 23:57 15-12-2010
       

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200

    Компьютерный форум 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