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

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

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    доброго времени суток
    подскажите пожалуйста как в autoit проверить открыт или нет определенный файл на сетевой шаре?

    Всего записей: 203 | Зарегистр. 17-11-2017 | Отправлено: 21:33 23-12-2018 | Исправлено: smurf78, 21:34 23-12-2018
    exMIB



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет ! С новым годом !
     
    Кто-нибудь знает AutoIT может увидеть сигнал на определенном порту, а точнее 1935 порт RTMP
     
    Мне надо чтобы в начале скрипта если есть сигнал на этом порту входящий не выполнять далее скрипт, а закрыть его и ждать следующей проверки
     
    Как такое сделать ?
     
    Добавлено:
    И ещё вопрос как сделать чтобы скрипты ждали друг друга, т.е. пока не отработал один чтобы другой не запускался ? Или они ждут друга друга при выполнении если как отдельные экзешники ?

    Всего записей: 3300 | Зарегистр. 27-09-2001 | Отправлено: 21:09 02-01-2019 | Исправлено: exMIB, 21:10 02-01-2019
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть строки вроде таких:
    .method public constructor <init>()V
    .method public static getToken(Ljava/lang/String;)Ljava/lang/String;
    .method protected bridge synthetic doInBackground([Ljava/lang/Object;)Ljava/lang/Object;
    .method protected onPostExecute(Ljava/lang/String;)V
     
    Нужно регуляркой вытянуть то, что стоит после закрывающей скобки, но исключая строки, в которых есть сочетание init>
    Собственно, не получается состряпать такую регулярку.

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 13:26 04-01-2019 | Исправлено: Zloy_Gelud, 13:27 04-01-2019
    Smitis



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Zloy_Gelud
    А если упростить задачу и предварительно проверить строку StringInStr?


    ----------
    Разум когда-нибудь победит

    Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 16:56 04-01-2019
    NIKZZZZ



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

    Код:
    (?im-s)^\.method.*(?<!init>)\([^\)]*\)(.*)


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 04:02 05-01-2019 | Исправлено: NIKZZZZ, 04:22 05-01-2019
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Доброго времени суток. Ребята, в шапке есть пример: "Функция (и пример использования) для отображения стильного диалога “О программе”", подскажите пожалуйста, можно ли его адаптировать под скроллинг текста из текстового документа?

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 23:15 16-01-2019
    kinor



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день форумчане! Очень прошу помощи специалистов по программе.
     
    Необходимо извлечь строки из файла для последующего перевода и соответственно его потом собрать.  
    На основе готового скрипта вот здесь: https://pastebin.com/63bYdBSX, нужно подкорректировать под файл "ida.hlp" чтобы извлечь из него ресурсы и перевести. Файл "hlp" находится по ссылке https://mega.nz/#!j3Zl1QCb!F9unPfnQdRVRUQzdI7IFMDBEcI4rX8ITzCt_gAykzk8
    Надеюсь на помощь!
     

    Всего записей: 119 | Зарегистр. 12-02-2018 | Отправлено: 13:50 19-01-2019 | Исправлено: kinor, 13:53 19-01-2019
    Bannan



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

    Цитата:
    Необходимо извлечь строки из файла для последующего перевода и соответственно его потом собрать.  

    kinor вот держи сценарий
    Для запуска/компиляции используй 32-бит версию.
    Поправка: Если в ida.hlp есть байты 0хDB, то разкомментируй в сценарии команды его обработки. Это надо сделать в функциях извлечения и внедрения. Я смотрел файлы с разных версий IDA, этот байт или есть, или нет.  

    Всего записей: 507 | Зарегистр. 30-07-2011 | Отправлено: 15:09 19-01-2019 | Исправлено: Bannan, 15:46 19-01-2019
    kinor



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

    Всего записей: 119 | Зарегистр. 12-02-2018 | Отправлено: 20:28 19-01-2019
    penguen



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здр., а как работать с ActiveX (OCX) файлами?  
     
    Задача какая.  
    Есть однотипные камеры, на которых одна учетка и с этими камерами нужно производить манипуляции. Например удаленно перезагрузить или вручную вкл. ИК подсветку, когда требуется. Чтобы не давать доступ операторам.  
     
    Сделал скрипт, подкл. через IE и авторизируется. Здесь проблем нету. Но когда заходишь через вэб-морду камеры вкл. АкстивХ скрипт и сверху появляется меню => Журнал, Устройство, ..., Выход.  
     
    Не могу выбрать соотв. меню = Устройство, чтоб зайти в под меню Настройки.

    Всего записей: 451 | Зарегистр. 04-03-2005 | Отправлено: 23:11 19-01-2019
    Fom64

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    penguen
    У Total Commander есть плагин FileInfo, можно им посмотреть функции в ActiveX (ocx) файле программы CMS, если разберешься, что там и откуда вызывается.  
    На мой взгляд, проще найти координаты кнопки на экране и использовать MouseClick или в окне Tab'ом и другими кнопками на клаве пощелкать, можь тоже работают, тогда - Send

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 08:40 20-01-2019
    penguen



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

    Цитата:
        Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    penguen  
    У Total Commander есть плагин FileInfo, можно им посмотреть функции в ActiveX (ocx) файле программы CMS, если разберешься, что там и откуда вызывается.  
    На мой взгляд, проще найти координаты кнопки на экране и использовать MouseClick или в окне Tab'ом и другими кнопками на клаве пощелкать, можь тоже работают, тогда - Send

     
    спасибо, учту

    Всего записей: 451 | Зарегистр. 04-03-2005 | Отправлено: 14:12 20-01-2019
    seva1

    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Всем привет
    Ребят, может у кого-то есть интерес и свободное время фрилансить по autoit
    Есть задачи простенькие типа https://goo.gl/6MqvNA
     
    У нас написала тулза для менеджеров, которая ускоряет работу за счет обработки буфера обмена при работе с данными.
     
    Мы стартап поэтому больших бюджетов нет, условно за такие простенькие задачи платим 300-500Р. Но задачи такие постоянно, практически каждый день
     
    Если интересно чирканите плиз в личку.
    Благодарю!

    Всего записей: 1153 | Зарегистр. 10-12-2003 | Отправлено: 12:21 04-02-2019
    ynbIpb



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

    Цитата:
    Есть задачи простенькие типа https://goo.gl/6MqvNA  

    Давно не писал ничего, хоть вспомнить. Если я правильно понял задание.
    AutoIt Version: 3.3.14.5
    комбинация Shift+Alt+d  

    Код:
    $sSettings_ini = @ScriptDir & "\settings.ini" ; путь к ini файлу с настройками
    If FileExists ($sSettings_ini) = 0 Then
        $hSettings_ini = FileOpen ($sSettings_ini, 2+512); открываем файл для записи в ANSI
        FileWrite ($hSettings_ini, "[urls]"&@CRLF&"URL1_name=Поиск в Google"&@CRLF&"URL1_data=https://google.gik-team.com/?q="&@CRLF& _
        "URL2_name=Поиск в Yandex"&@CRLF&"URL2_data=https://yandex.ru/search/?text=")
        FileClose ($hSettings_ini)
    EndIf
     
    HotKeySet("+!d", "_Calculate") ; комбинация Shift-Alt-d
     
    While 1; бесконечный цикл
        Sleep (100)
    WEnd
     
    Func _Calculate ()
        $sCurClipboard = ClipGet ( ) ; читаем буфер обмена
        If $sCurClipboard = "" Then ;проверяем пуст ли буфер
            TrayTip ("", "Буфер обмена пуст!", 3)
            Sleep (1000)
            Return ; возвращаемся из функции
        EndIf
        TrayTip ("", "Текст: "&$sCurClipboard, 3)
        Sleep (1000)
        $sResultString = StringReplace ($sCurClipboard, "    ", "-") ; заменяем все символы "TAB" на "-"
        $sResultString = StringReplace ($sResultString, @CRLF, "|") ; заменяем все символы переноса строки на "|"
        If StringRight ($sResultString, 1) ="|" Then ; проверяем последний символ строки
            $sResultString = StringTrimRight ($sResultString, 1); обрезаем последний символ
        EndIf
        ClipPut ($sResultString); вставляем результат в буфер обмена
        $Form1 = GUICreate("Копирование из Таблицы", 500, 150)
        $Label1 = GUICtrlCreateLabel("Результат: ", 5, 5, 60, 17)
        $Label2 = GUICtrlCreateLabel("Ссылка 1: ", 5, 106, 60, 17)
        $Label3 = GUICtrlCreateLabel("Ссылка 2: ", 5, 128, 60, 17)
        $Label4 = GUICtrlCreateLabel("", 66, 5, 429, 17)
        GUICtrlSetData ($Label4, $sResultString); заносим результат в форму
        $Label5 = GUICtrlCreateLabel("", 66, 106, 429, 17)
        GUICtrlSetColor ($Label5, 0x0000FF)
        GUICtrlSetData ($Label5, IniRead ($sSettings_ini, "urls", "URL1_name", "" )); формируем название ссылки
        $Label6 = GUICtrlCreateLabel("", 66, 128, 429, 17)
        GUICtrlSetColor ($Label6, 0x0000FF)
        GUICtrlSetData ($Label6, IniRead ($sSettings_ini, "urls", "URL2_name", "" )); формируем название ссылки
        GUISetState(@SW_SHOW)
     
        While 1
        $nMsg = GUIGetMsg()
            Switch $nMsg
                Case -3 ; закрытие окна
                    GUIDelete ($Form1); удаляем окно
                    Return ; вызващаемся из функции
                Case $Label5
                ShellExecute(IniRead ($sSettings_ini, "urls", "URL1_data", "" )&$sResultString);формируем ссылку
                Case $Label6
                ShellExecute(IniRead ($sSettings_ini, "urls", "URL2_data", "" )&$sResultString);формируем ссылку
            EndSwitch
        WEnd
    EndFunc

    Всего записей: 1645 | Зарегистр. 01-05-2006 | Отправлено: 17:27 04-02-2019 | Исправлено: ynbIpb, 17:40 04-02-2019
    dedmazai1870



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    seva1
    Если задачи на Excel, то, мне кажется, лучше их делать на VBA. Сделать файл-шаблон для задачи, горячей клавишей вызвать макрос и если данные нужны - сохранить под другим именем не портя шаблон.

    Всего записей: 1386 | Зарегистр. 07-07-2012 | Отправлено: 18:32 04-02-2019
    JIeT4uK

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    #include <IE.au3>
    #include <MsgBoxConstants.au3>
     
    Local $URL = "https://fantasy.premierleague.com/a/statistics/total_points/te_10"
    Local $oIE = _IECreate($URL,0,1,1,1)
     
    _IELoadWait($oIE)
     
    после выполнения скрипта на странице DOM вно изменился,  как получить эти обновления?

    Всего записей: 1 | Зарегистр. 09-02-2019 | Отправлено: 10:28 09-02-2019 | Исправлено: JIeT4uK, 14:11 09-02-2019
    AlexandrPessimist



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. Помогите разобраться с функцией StringFormat, не могу понять, или обнаружил баг, или у меня ошибка..
    Задача: составить текстовый файл, в UTF-8. По ходу выполнения моей функции, создаются отдельные строки. Эти строки нужно собрать вместе и записать в текстовый файл.
    Последняя переменная ($var3) может быть пустой, если это так, то пробел перед ней не должен сохраняться (такое условие), потому решил воспользоваться StringFormat.
    Если собирать строки, а потом записать, тогда последнее значение не подставляется:  
     
    Local $line, $var1 = 'A', $var2 = 'B', $var3 = '1'
    $line = StringFormat('Comment line: %s\n', $var1)
    ...
    for $i = 1 to 20
     $line &= StringFormat('Params: %s %s% s\n', $var1, $var2, $var3)
    next
    FileWrite($txt_file, $line)
     
    Выход нашел такой:  
    for $i = 1 to 20
     $line &= StringStripWS(StringFormat('Params: %s %s %s', $var1, $var2, $var3) ,2) & @LF
    next

    Всего записей: 21 | Зарегистр. 19-02-2016 | Отправлено: 12:38 16-02-2019 | Исправлено: AlexandrPessimist, 14:04 16-02-2019
    5peciali5t



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Добрый день!
     
    собираю оболочку, конфигурирующую установку редакций офиса на основе установщика click2run
    пока это в основном только наброски внешнего вида, будет много чекбоксов и в зависимости от того что активировано/деактивировано должен будет формироваться xml файл конфигурации установки
     
    пример xml файла
     
    внешний вид
     
    оболочка
     
    Вопросы:
    1. можно ли привести фрагмент кода который при установленном чекбоксе "ru-RU" запишет в xml файл строку
          <Language ID="ru-RU" />
    а при деактивированном (не отмеченном) чекбоксе OneDrive запишет
          <ExcludeApp ID="OneDrive" />
    2. если xml файл нужно сложить по кирпичикам из совокупности отмеченных/деактивированных чекбоксов, как организовать вывод в файл, чтобы каждая новая строка дописывалась, а не перезаписывала файл
    3. как организовать раскрывающийся список, который при выборе в нем элемента будет менять состав выводимых в поле опций, например, выбрали редакцию proplus под ней отобразились входящие в ее состав приложения, выбрали standard - отобразились входящие в нее (чтобы убрать из интерфейса множество по сути отвлекающих и дублирующихся опций)?
    4. можно ли что-то добавить в код скрипта к определенным командам (как якорь в html), чтобы скомпилированному exe файлу можно было передавать параметры установки, конфигурируя ее из командной строки, например
    .exe /proplus /ru-RU /excludeonedrive /silent
    прописало бы в формируемый xml файл соответственно  
        <Product ID="Proplus2019Volume">
          <Language ID="ru-RU" />
          <ExcludeApp ID="OneDrive" />
    ..
    <Display Level="None" AcceptEULA="TRUE" />
     
    Заранее благодарю за ответы!

    Всего записей: 1472 | Зарегистр. 17-07-2009 | Отправлено: 19:20 17-03-2019 | Исправлено: 5peciali5t, 19:21 17-03-2019
    YikxX



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Всем привет!
     
    Решил вот "достать из небытия" скрипт, который нашел тут же

    Код:
    $sUserName = "User_name"
    $sPassword = "Parol"
    $browser = @ScriptDir & "/firefox.exe"
    If FileExists ($browser) Then
        RunAs ($sUserName, @ComputerName, $sPassword, 1, $browser)
    EndIf

    Что он делает, думаю всем понятно
     
    Задача: Научить его обрабатывать параметры, например используемые для запуска из внешнего приложения, с открытием определенного URL. То есть передавать параметры напрямую экзешнику Огнелиса (если это вообще возможно, конечно). В реестре используется вот такая конструкция "C:\Program Files\Mozilla Firefox\firefox.exe" -osint -url "%1" Если браузер уже открыт, то проблем нет - просто открывается новая вкладка со ссылкой и все. А вот если нет - то браузер запускается под "админоюзером", а этого нам не надо.
    Читал хелпы, форумы, в итоге нефига не понял, как это реализовать Надеюсь на помощь гуру, заранее спасибо!

    Всего записей: 1021 | Зарегистр. 29-07-2008 | Отправлено: 00:04 25-03-2019
    Fom64

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    YikxX
    Не совсем понял задачу. Тебе надо запустить скрипт типа так: "script.au3 <url>" если не запущен firefox и "script.au3" если запущен? Так попробуй:

    Код:
    $sUserName = "User_name"
    $sPassword = "Parol"
    $browser = @ScriptDir & "/firefox.exe"
    $Pattern = "(?i)^http(s)?://[a-z0-9-]+(.[a-z0-9-]+)*(:[0-9]+)?(/.*)?$"
    If FileExists($browser) Then
        If Not ProcessExists("firefox.exe") Then
            If $CmdLine[0] > 0 Then
                $a = StringRegExp($CmdLine[1], $Pattern) ; проверка, что передан url
                If $a = 1 Then
                    ; что, собсно мешает использовать конструкцию из реестра?
                    RunAs($sUserName, @ComputerName, $sPassword, 1, $browser & ' -osint -url "' & $CmdLine[1] & '"')
                EndIf
            EndIf
         Else
            ; тут я не понял зачем запускать, если firefox уже запущен, но если работает, то пусть будет
            RunAs($sUserName, @ComputerName, $sPassword, 1, $browser)
        EndIf
    EndIf

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 09:50 25-03-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