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

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

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Цитата:
    Opt(ExpandVarStrings,1)
    Вы кавычки забыли поставить
    Код:
    Opt('ExpandVarStrings', 1)

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 20:34 02-06-2014
    NIKZZZZ



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

    Цитата:
    Вы кавычки забыли поставить

    Да, забыл , спасибо.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 20:42 02-06-2014
    Artem_Butenko



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

     
    Как всегда, оперативно, работает. Спасибо ребята!
     
    Добавлено:
    Ребята, возник еще один не совсем тривиальный вопрос. Есть очень хороший вариант самоудаления скомпилированного файла скрипта. Вопрос в том, можно ли при самоудалении файла скрипта, удалять и каталог в котором он находился, при условии, если он пуст?

    Всего записей: 707 | Зарегистр. 19-02-2008 | Отправлено: 01:09 03-06-2014
    GORA2



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

    Цитата:
     можно ли при самоудалении файла скрипта, удалять и каталог в котором он находился, при условии, если он пуст?


    Код:
    #Include <File.au3>
     
    Func _ScriptDestroy()
    $sTemp = _TempFile(@TempDir, '~', '.bat')
    $hFile = FileOpen($sTemp, 2)
    FileWriteLine($hFile, '@echo off')
    FileWriteLine($hFile, 'CD /D ..\')
    FileWriteLine($hFile, ':loop')
    FileWriteLine($hFile, 'del "%~1"')
    FileWriteLine($hFile, 'if exist "%~1" goto loop')
    FileWriteLine($hFile, 'Dir /B "%~dp1" | Find /V "|">Nul || RD /S /Q "%~dp1"')
    FileWriteLine($hFile, 'del "%~0"')
    FileClose($hFile)
    Run('"' & $sTemp & '" "' & @ScriptFullPath & '"', '', @SW_HIDE)
    EndFunc
     
    _ScriptDestroy()
     

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 05:43 03-06-2014
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GORA2,
    Проверил на Win7 86, файл удаляется, папка остается (у меня).
     
    Artem_Butenko,
    Посмотрите еще в этой теме Удаление папки @ScriptDir, Ответ #6, Ответ #10.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 07:18 03-06-2014 | Исправлено: madmasles, 07:40 03-06-2014
    GORA2



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    В папке нет других файлов или папок, кроме скрипта удаления?
    Запуск скрипта удаления производите как? не в файловом менеджере из открытой папки подлежащей удалению?
    Папка не занята системой или иным софтом (например, ФМ)?
    Я запускал из батника расположенного рядом с папкой и папка удалялась. Win7 x64

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 07:25 03-06-2014
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    GORA2,
    Извините, все работает с пустой папкой даже если запускать из открытой в проводнике папки. Не работало, когда в папке лежал еще не скомпилированный скрипт.
    ИМХО, есть смысл добавить удаление всех файлов из удаляемой папки.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 07:36 03-06-2014 | Исправлено: madmasles, 07:38 03-06-2014
    GORA2



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

    Цитата:
    есть смысл добавить удаление всех файлов из удаляемой папки.

    Это противоречит ТЗ!
    Цитата:
    самоудалении файла скрипта, удалять и каталог в котором он находился, при условии, если он пуст?


    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 07:58 03-06-2014
    NIKZZZZ



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

    Цитата:
    самоудаления скомпилированного файла скрипта.

    Что-то сложно, можно и одной строкой.

    Код:
    Run('cmd.exe /c "for /l %a in (1,1,500) do rd /s /q ""' & @ScriptDir & '"" && exit"',@SystemDir)

     
     
    Добавлено:

    Цитата:
    при условии, если он пуст?  

    Да, на это условие не обратил внимания

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 08:36 03-06-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    comrades, подскажите, пожалуйста, по функции StringRegExpReplace:
    читаю в переменную $sOut поток вывода консольного приложения, нужно найти строку  
    Total elapsed time: X sec и вытащить X sec (с пробелом в начале и не обязательно sec в конце - может быть X min Y sec), делаю так

    Код:
    StringRegExpReplace($sOut, '(?si).*Total elapsed time:( .*)\v*.*', '\1')

    и получаю пустые строки в конце, как их убрать? Разве \v* не должно убрать переносы строк?
     
    Добавлено:
    Туплю, исправил на

    Код:
    StringRegExpReplace($sOut, '(?si).*Total elapsed time:( [^\v]*).*', '\1')

    вроде работает.

    Всего записей: 6462 | Зарегистр. 28-01-2008 | Отправлено: 17:10 03-06-2014 | Исправлено: Skif_off, 17:10 03-06-2014
    NIKZZZZ



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

    Цитата:
    Туплю

    Есть прекрасная программка RegexBuddy, отлаживать регулярные выражения одно удовольствие.
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:44 03-06-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    У меня обычно выражения простенькие, в случае чего использую RegExp, но тут неожиданно вылезло и поторопился написать сюда

    Всего записей: 6462 | Зарегистр. 28-01-2008 | Отправлено: 23:41 03-06-2014
    Artem_Butenko



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

    Цитата:
    #Include <File.au3>  
     
    Func _ScriptDestroy()  
    $sTemp = _TempFile(@TempDir, '~', '.bat')  
    $hFile = FileOpen($sTemp, 2)  
    FileWriteLine($hFile, '@echo off')  
    FileWriteLine($hFile, 'CD /D ..\')  
    FileWriteLine($hFile, ':loop')  
    FileWriteLine($hFile, 'del "%~1"')  
    FileWriteLine($hFile, 'if exist "%~1" goto loop')  
    FileWriteLine($hFile, 'Dir /B "%~dp1" | Find /V "|">Nul || RD /S /Q "%~dp1"')  
    FileWriteLine($hFile, 'del "%~0"')  
    FileClose($hFile)  
    Run('"' & $sTemp & '" "' & @ScriptFullPath & '"', '', @SW_HIDE)  
    EndFunc  
     
    _ScriptDestroy()  

     
    Спасибо. Оно самое!!!

    Всего записей: 707 | Зарегистр. 19-02-2008 | Отправлено: 18:02 04-06-2014
    Poopkeen



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Камрады, а можно попросить помощи?
     
    Встала задача из файла Excel Из определенного столбца построчно скопировать около 300 элементов в форму 1С 8.
    Вручную это делать - какой-то ужас да и неспортивно
    Вспомнил про чудную сабжевую программу, только умения пользоваться ей чуть менее чем нет.
     
    Как я себе представляю - нужен цикл
     
    со строки 1 по 300
    1. ЗначениеЯчейки = данные из экселя (ТекущийНомерСтроки, ОпределенныйНомерСтолбца)
    2. Скопировать в буфер обмена ЗначениеЯчейки
    3. В 1С нажать в форме мышью кнопку (или клавишу insert). В появившейся форме вставить текст из буфера обмена и нажать ОК
    КонецЦикла
     
    При помощи AutoIT Macro Generator подозреваю, что кусок кода по пункту 3 выглядит так
     
    WinWait("Конфигуратор - Управление производственным предприятием для Украины, редакция 1.3","")
    ControlClick("Конфигуратор - Управление производственным предприятием для Украины, редакция 1.3","","V8CommandBar32")
    WinWait("Элемент справочника","")
    ControlClick("Элемент справочника","","V8FormElement9","Right")
    WinWait("classname=V8PopupBar","")
    ControlClick("classname=V8PopupBar","","V8PopupBar0")
    WinWait("Элемент справочника","")
    ControlClick("Элемент справочника","","V8FormElement8")
     
    а вот как сделать цикл вычитывания данных из xls - уже идет темный лес

    Всего записей: 254 | Зарегистр. 12-03-2003 | Отправлено: 15:37 05-06-2014
    sewell



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Poopkeen
    Я бы не заморачивался с Excel. Если в нем столбец всего один, то проще данные скопировать руками в обычный текстовый файл (операция в три клика), а потом уже из файла читать скриптом AutoIT.

    Всего записей: 833 | Зарегистр. 06-07-2005 | Отправлено: 15:46 05-06-2014
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Poopkeen,
    Можно пример Excel файла?

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 15:49 05-06-2014
    dialmak



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Poopkeen
    Тут глянь примеры как читать Excel файл
    http://www.rarst.net/script/array-from-excel/
    Да и в справке AutoIt есть  

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 16:05 05-06-2014 | Исправлено: dialmak, 16:06 05-06-2014
    Poopkeen



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

    Цитата:
    Можно пример Excel файла?

     
    тут сам файл не важен - мне надо разобрать один столбец
     
    на сообщение выше sewell говорит перекинуть содержимое в текстовик
    так бы подошло
     
    проблема чуть переформулируется - как вычитать txt и построчно отправить в приложение )

    Всего записей: 254 | Зарегистр. 12-03-2003 | Отправлено: 17:35 05-06-2014
    dialmak



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

    Цитата:
    как вычитать txt и построчно отправить в приложение

    Открыть тестовый файл и сделать парсинг (например рег. выражениями).

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 19:02 05-06-2014
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Poopkeen
    Цитата:
    тут сам файл не важен - мне надо разобрать один столбец
    Повторяю, дайте пример Excel-файла и укажите, какой столбец и какие строки надо получить.
     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 19:48 05-06-2014
       

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