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

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



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YikxX
    $Pattern = "(?i)^file:///\[a-z]:/[\w_/%\.]+\.(?:htm|html)$"

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 01:38 19-05-2019
    YikxX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ Спасибо, но что-то не работает :( И еще, как-бы, обработку других расширений файлов нужно, таких как: xhtml, xht, shtml, webm
     
    Разобрался. Ссылка в браузер передается в обычном виде типа Диск:\Путь\Имяфайла.расширение Нужна проверка для него
     
    Короче, выкрутился с помощью
    Код:
    $Pattern = "^(([A-Z]:)?[\.]?[\\{1,2}/]?.*[\\{1,2}/])*(.+)\.(.+)"
    вроде работает :)

    Всего записей: 1021 | Зарегистр. 29-07-2008 | Отправлено: 02:03 19-05-2019 | Исправлено: YikxX, 03:25 19-05-2019
    sqsqsq

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как передать переменную в execScript?
     
    У меня в скрипте используется  
    $oIE.document.parentwindow.execScript('mPDFDoc.save(MyFile.pdf)')
     
    Мне нужно задавать имя файла через переменную, что-то вроде этого:
    Код:
    local $sFilename = "MyFile.pdf"
    $oIE.document.parentwindow.execScript('mPDFDoc.save($sFilename)')

    Пробовал следующие варианты:
    Код:
    $oIE.document.parentwindow.execScript('mPDFDoc.save(' & $sFileName & ')')

    Код:
    local $str2 = "mPDFDoc.save(MyFile.pdf)"
    $oIE.document.parentwindow.execScript($str2)

    Пробовал пользоваться  Eval() и Execute() из своей функции
    Код:
    Func MyCallSubFunc($func, $subfunc, $subarg)
       ;~ Local $str = $func & '(' & "'" & $subfunc &  '(' & $subarg &  ')' & "'" &  ')'
       ;~ ConsoleWrite($str & @CRLF)
       $value = Eval ($func & '(' & "'" & $subfunc &  '(' & $subarg &  ')' & "'" &  ')' )
       Return $value
      EndFunc
     
    local $sFilename = "MyFile.pdf"
    MyCallSubFunc('$oIE.document.parentwindow.execScript', 'mPDFDoc.save', $sFilename)

    Похоже, я не в ту сторону копаю.

    Всего записей: 41 | Зарегистр. 06-07-2005 | Отправлено: 14:51 07-06-2019 | Исправлено: sqsqsq, 15:07 07-06-2019
    NIKZZZZ



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

    Цитата:
    Как передать переменную в execScript?  

    Можно попробовать так

    Код:
    local $sFilename = "MyFile.pdf"
    opt('ExpandVarStrings',1)
    $oIE.document.parentwindow.execScript('mPDFDoc.save($sFilename$)')  

     
    А так, странно, что другие варианты не работают.
     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:15 07-06-2019 | Исправлено: NIKZZZZ, 15:43 07-06-2019
    sqsqsq

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ спасибо
    Я, похоже, в кавычках запутался. Вот так заработало:
    Код:
    local $str3 = 'mPDFDoc.save("' & $ReportFileName & '")'
    $oIE.document.parentwindow.execScript($str3)

    То есть, $oIE.document.parentwindow.execScript('mPDFDoc.save("MyFile.pdf")')
     
    Добавлено:
    NIKZZZZ хорошая идея, но тоже не заработало

    Цитата:
    local $sFilename = "MyFile.pdf"  
    opt('ExpandVarStrings',1)  
    $oIE.document.parentwindow.execScript('mPDFDoc.save($sFilename$)')  


    Код:
    $oIE.document.parentwindow.execScript('mPDFDoc.save($sFilename$)')
    $oIE.document.parentwindow^ ERROR
    >Exit code: 1    Time: 18.05

    Всего записей: 41 | Зарегистр. 06-07-2005 | Отправлено: 15:55 07-06-2019 | Исправлено: sqsqsq, 15:58 07-06-2019
    NIKZZZZ



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

    Цитата:
    хорошая идея, но тоже не заработало  

    Так проблема в тех-же кавычках

    Код:
    local $sFilename = "MyFile.pdf"  
    opt('ExpandVarStrings',1)  
    $oIE.document.parentwindow.execScript('mPDFDoc.save("$sFilename$")')

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 16:22 07-06-2019
    BOBAT



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    прошу помощи, есть код для упаковки программы в инсталлятор , распаковки его в @TempDir и запуска оттуда
    ;--------------------------------------------------------------------------------------
    FileInstall("prog.exe", @TempDir & "\prog.exe")
     
    ShellExecuteWait(@TempDir & "\prog.exe", "параметры","","",@SW_HIDE)
    ;--------------------------------------------------------------------------------------
    Как сделать, чтобы prog.exe прописывался в виде переменной
    $Programma = prog.exe
    и
    ;--------------------------------------------------------------------------------------
    FileInstall("$programma", @TempDir & "\$programma")  
    ShellExecuteWait(@TempDir & "\$programma", "параметры","","",@SW_HIDE)
     
    Пробовал так, - из скрипта всё работает, при попытке компиляции выдаёт ошибку

    Всего записей: 1511 | Зарегистр. 07-08-2005 | Отправлено: 13:48 17-06-2019 | Исправлено: BOBAT, 13:51 17-06-2019
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    BOBAT
    Ни как.
    В FileInstall() должен быть прописан реальный путь, иначе компилятор его просто не найдет.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:58 17-06-2019
    sqsqsq

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    На сайте русского сообщества AutoIt выложены функции UIAutomate для облегчения работы с нестандартными элементами GUI.
    Файлы доступны для скачивания только зарегистрированным пользователям, а регистрация новых пользователей закрыта. Может кто-нибудь перевыложить на файлообменник?  
    Спасибо!

    Всего записей: 41 | Зарегистр. 06-07-2005 | Отправлено: 18:45 24-06-2019
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    sqsqsq
    UIAutomate.zip

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:29 24-06-2019
    Konstantin_K

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет. Написал простенький скрипт для автоматизации подачи объявлений через Юлу.  
     
    upload image
     
    Для поля ввода использую функцию GUICtrlCreateInput. Проблема в следующем, если в наименовании название на латинице, то все отрабатывается так, как надо, т.е. и ввод, вставляется та информация, которая должна быть. Если ввод идет на русском языке, то получается вот так:
     
    upload image
     
    Код при заполнении названия товара:

    Код:
    ; пишем название
        $read_name=GUICtrlRead($name)
        ClipPut($read_name)
        send ("^v")
        sleep(2000)
        send("{TAB}")

    $name=GUICtrlCreateInput ("", 120, 88, 180) - поле ввода наименования. Аналогичный результат показывает при использовании функции GUICtrlCreateEdit.
     
    Если реализовать просто через send($read_name), то все равно печатает по-английски. Можно реализовать через функции FileRead и FileReadLine с предварительным заполнением текстового файла, но очень хотелось через GUI. В чем проблема?
     
    Добавлено:
    Отвечу сам себе, может кому пригодиться. Дело в изначальном состоянии раскладки - при английской все заполнение происходить нормально. Слова полностью вводятся как на латинице, так и на русском. На русской раскладке возникает проблема, описанная выше.

    Всего записей: 8 | Зарегистр. 15-05-2019 | Отправлено: 10:50 25-06-2019
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Konstantin_K
    решение
    Вместо send ("^v") используй Shift+Insert то есть "+{INS}"
    Существует автоматизация IE через получение id полей и вставка в них, при условии что заполнение в браузере IE, а из скрина есть только предположение веб-интерфейса.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 13:33 26-06-2019 | Исправлено: AZJIO, 13:39 26-06-2019
    Konstantin_K

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Спасибо за решение.  

    Цитата:
    а из скрина есть только предположение веб-интерфейса.

    Все верно.

    Цитата:
    Существует автоматизация IE через получение id полей и вставка в них

    Полагаю, в конце концов, когда знаний прибавится, так и будет.

    Всего записей: 8 | Зарегистр. 15-05-2019 | Отправлено: 15:16 26-06-2019
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Konstantin_K
    В справке раздел IE в UDF. Создать веб-объект, чтоб он изначально использовал движок IE, загрузить веб страницу и автоматизировать заполнение.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 19:51 26-06-2019
    Konstantin_K

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо, буду пробовать.
     
    Добавлено:
    AZJIO, подскажите, пожалуйста.
     
    В русской справке есть функция _ExcelReadCell У меня она не работает, так как ее нет Excel.au. Вместо нее имеется _Excel_RangeRead Пока ее не пробовал, но исходя из описания совершает те же самые действия, что и _ExcelReadCell Сравнил UDF функции для работы с Excel в английском справке и русской, совпадений нет. Где взять файл с русскими UDF функциями?

    Всего записей: 8 | Зарегистр. 15-05-2019 | Отправлено: 11:59 27-06-2019 | Исправлено: Konstantin_K, 12:02 27-06-2019
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Konstantin_K
    Этот раздел переводил на русский не я, мне даже не приходилось этим пользоваться.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 17:28 27-06-2019
    Konstantin_K

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    В файле Excel.au3, который находиться в include, нет функции _ExcelReadCell. Вместо нее похожая _Excel_RangeRead Следовательно при подключении Excel.au3 _ExcelReadCell не работает. Где можно достать библиотеку .au3, в которой имеется функция _ExcelReadCell? В русском сообществе, посвященном AutoIt, ответа не нашел.

    Всего записей: 8 | Зарегистр. 15-05-2019 | Отправлено: 12:56 28-06-2019
    ValterG



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В английских дистрибутивах 3.3.х  она есть.  
    В конце концов можно скопипастить... Правда нужно понимать что и куда...

    Всего записей: 995 | Зарегистр. 06-12-2002 | Отправлено: 14:53 28-06-2019 | Исправлено: ValterG, 14:57 28-06-2019
    NIKZZZZ



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

    Цитата:
    Где можно достать библиотеку .au3, в которой имеется функция _ExcelReadCell?

    Начиная с версии 3.3.8.1 многие функции были переименованы и обновлены, можно найти библиотеку от более древней версии, но она может быть не совместимой с современной версией Autoit.  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 15:28 28-06-2019
    Konstantin_K

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ, ValterG, спасибо.
     

    Цитата:
    В английских дистрибутивах 3.3.х  она есть.    

    Есть функция _Excel_RangeRead, нет функции _ExcelReadCell, которая описывается в русской справке.  

    Всего записей: 8 | Зарегистр. 15-05-2019 | Отправлено: 16:38 28-06-2019
       

    Страницы: 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