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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в 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
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Да теперь проявляется. Не знаю чем помочь, видимо нужно трясти разработчиков плагина, пусть делают опцию сворачивания при запуске. TheBat это умеет

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

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ynbIpb
    Да это давно запрошено, а когда реализуется, хз.

    Всего записей: 1048 | Зарегистр. 28-11-2004 | Отправлено: 10:13 10-12-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Каким способом можно получить позицию найденного текста с помощью регулярного выражения?
    Позицию можно получить только с помощью StringIsInt, но её допустимо использовать только при замене с функцией StringReplace.
    Хочу добавить эту фичу для теста регулярных выражений с использованием RichEdit.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 13:05 10-12-2010
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 13:05 10-12-2010
    Цитата:
    Каким способом можно получить позицию найденного текста с помощью регулярного выражения?

    Только с рег. выражением никак, можно так:
     

    Код:
    $vTest = 'This is a test'
    $sRet = StringRegExpReplace($vTest, '(.*)t(o|e)st.*', '\1')
     
    ConsoleWrite("RegExp: " & StringLen($sRet)+1 & @LF)
    ConsoleWrite("InStr: " & StringInStr($vTest, "test") & @LF)

     
    но зачем?

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

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



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Это единичный случай. Незнаю как на движке PCRE, но в общей справке регулярка может искать не после найденного образца, но и внутри найденного образца. Если бы не так, то можно сделать поиск 1 раз, далее вернуть найденный образец и сделать его поиск с получением позиции, дальше поиск выполнять с офсетом.
     

    Цитата:
    но зачем?

    я же написал, хочу RichEdit использовать в утилите RegExp. Поможет в возвращаемом тексте подцветить найденные образцы.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 16:07 10-12-2010 | Исправлено: AZJIO, 16:25 10-12-2010
    ynbIpb



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

    Цитата:
    Ок. жду скрипт!
    Вот. Конечно не от начала до конца установки дополнения, а кусок работы именно с процедурой активации. Условия: Окно активации должно уже отображаться (запустить не активированную игру), кейген должен лежать рядом со скриптом.

    Код:
    AutoItSetOption ( "MouseCoordMode", 2) ; опция - относительные координаты клиентской области активного окна
    $sWin1 = "[TITLE:Theatre of War 2: Battle for Caen KeyGen; CLASS:#32770]" ; часть заголовка и класс окна кейгена
    $sWin2 = "[TITLE:Искусство войны. Битва за Кан - Активация; CLASS:#32770]"
    $sNumber = "BX-EETGJ5-USE4SE-NCUJDE-WKE9LC" ; номер, необходимый для активации
    If WinExists($sWin2) = 0 Then
        MsgBox (0, "Ошибка", "Окно Активации не найдено!")
        Exit
    EndIf

     
    WinMove ($sWin2, "", 1, 1); перемещаем в угол
    ControlSetText ($sWin2, "", "Edit1", $sNumber); вставляем HardwareID
    WinActivate ($sWin2)
    MouseClick ("left", 33, 135)
    $hWin2 = WinWait ($sWin2, "Выберите предпочтительный способ активации", 5)
    WinMove ($sWin2, "", 1, 1); перемещаем в угол
    sleep (100)
    $sHardID = ControlGetText ($hWin2, "", "Edit2") ; читаем поле с Hardware ID
    $iPid = ProcessExists ("Caen_KeyGen.exe") ; проверяем запущен ли кейген
    If $iPid = 0 Then ; если нет, то запускаем
        $iPid = Run (@scriptdir & "\Caen_KeyGen.exe"); запускаем кейген
    EndIf
    $hKeygenWin = WinWait ($sWin1, "", 10)
    sleep (1000); задержка, до полного появления окна кейгена
    ;WinSetState ($hKeygenWin, "", @SW_HIDE); скрываем окно

    WinMove ($hKeygenWin, "", 553, 1); перемещаем
    ControlSetText ($hKeygenWin, "", "Edit2", $sHardID); вставляем HardwareID
    sleep (100)
    ControlClick ($hKeygenWin, "", "Button5"); нажимаем Get key
    sleep (100)
    $sKey = ControlGetText ($hKeygenWin, "", "Edit3") ; читаем поле с ключегом
    ProcessClose ($iPid) ; убиваем процесс кейгена
    ControlSetText ($hWin2, "", "Edit3", $sKey); вставляем ключег
    sleep (100)
    ControlClick ($hWin2, "", "Button1");
    MsgBox (0, "", "Готово!")

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

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    ynbIpb, ViSiToR ребят, а не подскажите скрипт, что бы мышкой нажимать на кнопочку свернуть у окна с определённым куском в заголовке?

    Всего записей: 1048 | Зарегистр. 28-11-2004 | Отправлено: 01:27 11-12-2010
    MISHANCHYK

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста.
    Пытаюсь скрыть значёк utorrent из трея после запуска программы. Скрывается одновременным нажатием ALT+q. Пытался по разному:

    Код:
     
    Blockinput(1)
    run('utorrent.exe')
    Sleep ( 3000 )
    Send("{ALTDOWN}q{ALTUP}")
    Blockinput(0)
     
     
    и

    Код:
    Blockinput(1)
    run('utorrent.exe')
    Sleep ( 3000 )
    Send("!q")
    Blockinput(0)
     
    Не получается. utorrent запускается, а скрытие его не происходит. Если же нажать вручную клавиши-то всё нормально.

    Всего записей: 751 | Зарегистр. 04-12-2007 | Отправлено: 02:47 11-12-2010 | Исправлено: MISHANCHYK, 02:51 11-12-2010
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    MISHANCHYK
    попробуй русскую клавишу использовать - й

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 03:51 11-12-2010
    MISHANCHYK

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

    Всего записей: 751 | Зарегистр. 04-12-2007 | Отправлено: 06:00 11-12-2010
    CAHEK77



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

    Цитата:
    AutoItSetOption ( "MouseCoordMode", 2) ; опция - относительные координаты клиентской области активного окна
    $sWin1 = "[TITLE:Theatre of War 2: Battle for Caen KeyGen; CLASS:#32770]" ; часть заголовка и класс окна кейгена
    $sWin2 = "[TITLE:Искусство войны. Битва за Кан - Активация; CLASS:#32770]"
    $sNumber = "BX-EETGJ5-USE4SE-NCUJDE-WKE9LC" ; номер, необходимый для активации
    If WinExists($sWin2) = 0 Then
        MsgBox (0, "Ошибка", "Окно Активации не найдено!")
        Exit
    EndIf
     
    WinMove ($sWin2, "", 1, 1); перемещаем в угол
    ControlSetText ($sWin2, "", "Edit1", $sNumber); вставляем HardwareID
    WinActivate ($sWin2)
    MouseClick ("left", 33, 135)
    $hWin2 = WinWait ($sWin2, "Выберите предпочтительный способ активации", 5)
    WinMove ($sWin2, "", 1, 1); перемещаем в угол
    sleep (100)
    $sHardID = ControlGetText ($hWin2, "", "Edit2") ; читаем поле с Hardware ID
    $iPid = ProcessExists ("Caen_KeyGen.exe") ; проверяем запущен ли кейген
    If $iPid = 0 Then ; если нет, то запускаем
        $iPid = Run (@scriptdir & "\Caen_KeyGen.exe"); запускаем кейген
    EndIf
    $hKeygenWin = WinWait ($sWin1, "", 10)
    sleep (1000); задержка, до полного появления окна кейгена
    ;WinSetState ($hKeygenWin, "", @SW_HIDE); скрываем окно
    WinMove ($hKeygenWin, "", 553, 1); перемещаем
    ControlSetText ($hKeygenWin, "", "Edit2", $sHardID); вставляем HardwareID
    sleep (100)
    ControlClick ($hKeygenWin, "", "Button5"); нажимаем Get key
    sleep (100)
    $sKey = ControlGetText ($hKeygenWin, "", "Edit3") ; читаем поле с ключегом
    ProcessClose ($iPid) ; убиваем процесс кейгена
    ControlSetText ($hWin2, "", "Edit3", $sKey); вставляем ключег
    sleep (100)
    ControlClick ($hWin2, "", "Button1");
    MsgBox (0, "", "Готово!")

    Всего записей: 107 | Зарегистр. 14-10-2010 | Отправлено: 08:01 11-12-2010
    VamPIr4eg174



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Кто знает,
    КАК ДОСРОЧНО ОТКЛЮЧИТЬ ВЫПОЛНЕНИЕ СКРИПТА?!
     
    (а то вкл. не тот и понеслось...)

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



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

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 11:31 11-12-2010
    ynbIpb



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

    Цитата:
    мышкой нажимать на кнопочку свернуть у окна с определённым куском в заголовке?

    Код:
    Opt("WinTitleMatchMode", 2); сопоставление с любым фрагментом заголовка
    AutoItSetOption ( "MouseCoordMode", 0) ; опция - относительные координаты активного окна
    $sWin = "[TITLE:Thunderbird; CLASS:MozillaUIWindowClass]" ; часть заголовка и класс окна
    If WinExists ($sWin) = 0 Then ; если окно НЕ существует, выход
        TrayTip ( "test", "Окна нет.", 3)
        sleep(3000)
        Exit
    EndIf

    $iWinState = WinGetState ($sWin) ; читаем статус окна
    If BitAnd($iWinState, 16) Then ; если окно уже свёрнуто, выход
        TrayTip ( "test", "Окно уже свёрнуто!", 3)
        sleep(3000)
        Exit
    EndIf

    $aSize = WinGetPos ($sWin) ; читаем размер окна
    WinActivate ($sWin) ; активируем окно на вякий случай, если оно вдруг в фоне
    $iRet = MouseClick ("left", $aSize[2]-98, 15, 1, 0); тыкаем на свернуть
    If $iRet = 1 Then ; если результат операции равен 1, то всё успешно
        TrayTip ( "test", "Успешно свернули!", 3)
        sleep(3000)
        Exit
    Else

        TrayTip ( "test", "Что-то не так!", 3)
        sleep(3000)
        Exit
    EndIf


    Цитата:
    Куда вписать этот кусок активации в Inno Setup  

    Необходимо скомпилировать его в EXE положить в папку с установленной игрой и чтоб инсталятор его запустил по окончании установки. только нужно в начало скрипта добавить строчку запуска самой игры, ибо как у нас появится окно активации?

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 13:41 11-12-2010 | Исправлено: ynbIpb, 13:43 11-12-2010
    VamPIr4eg174



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

    Цитата:
    так

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

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



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ynbIpb
     Я создаю свой инсталлятор  (свой фон в инстале ,музыка,проверка минимальных сис. требований компилирую свой скрипт для создания  setup.exe)  предварительно игру сжимаю для минимального веса . И надо как то впихнуть этот кейген в мой скрипт который потом создал  бы  setup.exe уже с кейгеном внутри для автоматический активации. Короче чтобы при инсталляции игры автоматичиски использовался кейген чтоб потом не пришлось активировать игру другим пользователям ( принцип установки, установи и играй).  

    Всего записей: 107 | Зарегистр. 14-10-2010 | Отправлено: 14:08 11-12-2010 | Исправлено: CAHEK77, 14:09 11-12-2010
    ynbIpb



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    уже офтоп, но всёже: Представь, что этот скрипт на автоите и кейген часть файлов игры. Они должны лежать в каталоге с игрой. Вот и упаковывай их вместе в ней. А инсталятору дай задачу запустить некий файл EXE в распакованном каталоге игры.

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте.
    Подскажите пожалуйста:
    Как запустить приложение из подпапки с рабочей директорией корня скрипта?
    Использую эту функцию:
    Run ( "@ScriptDir\bin\XR_3DA.exe", "@ScriptDir\" )
    Но она не запускает приложение...
    Кроме @ScriptDir пробовал еще @WorkingDir, но безрезультатно...

    Всего записей: 19 | Зарегистр. 04-12-2010 | Отправлено: 17:51 11-12-2010
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    XOBAH 17:51 11-12-2010
    Цитата:
    Использую эту функцию

    Макросы и переменные не нужно обрамлять кавычками:

    Код:
    Run (@ScriptDir & "\bin\XR_3DA.exe", @ScriptDir)


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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 17:57 11-12-2010
    XOBAH

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо Visitor за помощь с переменной
     
    Еще вопрос:
    У меня есть 10 скриптов AutoIT, можно ли их сразу скомпилировать с определенной иконкой?
     
    Вопрос снят. Надо скомпилировать 1 скрипт через Aut2Exe выбрав необходимую иконку, потом закрыть его, выделить скрипты и нажать Compile - Все они скомпилятся с последней иконкой.

    Всего записей: 19 | Зарегистр. 04-12-2010 | Отправлено: 18:30 12-12-2010 | Исправлено: XOBAH, 18:36 12-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