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

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



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO
    Да справку конечно читаю.

    Код:
    $Open = _FTP_Open('ZIC',1,'10.0.0.112:3128')

    Тут указан прокси сервер и его порт.
    А тут
    Код:
    $Conn = _FTP_Connect($Open, $server, $username, $pass)
    как я понимаю указывается порт по которому происходит подключение к самому FTP.

    Всего записей: 248 | Зарегистр. 16-09-2008 | Отправлено: 09:07 20-05-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 02:27 20-05-2011
    Цитата:
    требует регистрации

    Ну, я думаю это грех для AutoIt'ера не быть зарегистрированным на форуме русскоязычного сообщества AutoIt
     

    Цитата:
    "Функция (и пример использования) для отображения стильного диалога “О программе”" - выдаёт ошибку

    Надо оставить расширенную версию.
     
    По поводу примера с выводом лога, там нужно подключать указанную библиотеку.
     
    Пример с использованием встроенной GUIRichEdit.au3
     
    Добавлено:
    Поправил шапку:
     
    Книга от Дж. Фридл - Регулярные выражения. -> Поправил ссылки, доавил 3-е издание (первое так и не нашёл, ссылка нерабочая).
    Regular Expression Library - Online библиотека регулярных выражений -> Добавлено.
    Пример вывода лога в Edit-поле -> Обновил пример.
    Функция (и пример использования) для отображения стильного диалога “О программе” -> Поменялл ссылки местами.

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 12:30 20-05-2011 | Исправлено: ViSiToR, 12:38 20-05-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    1MDI1
    Ты устанавливаешь второй параметр равный 1, он и так равен 1 и указано что этот параметр если без прокси. В справке "Устанавливается, если используется прокси-сервер.", а иначе по умолчанию 1, что видно в параметрах функции, которые всегда задаются по умолчанию, если они дополнительные.  
    Global Const $INTERNET_OPEN_TYPE_DIRECT = 1
    $INTERNET_OPEN_TYPE_DIRECT -> no proxy
    Это я глянул в FTPEx.au3. У меня прокси нет и лень его ставить ради проверки.
     
    Попробуй вместо имени сервера указать IP. Скачай перевод отсюда и почитай страницы 10, 11, 12


    Там же интересная статья WinAPI:стркутуры

    ----------
    home

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 04:36 21-05-2011 | Исправлено: AZJIO, 11:31 21-05-2011
    1MDI1



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO
    В общем подключился я скачал файл и смог выполнить команду на установку списка отозванных сертификатов. Но это только помимо прокси сервера.

    Код:
    #include <FTPEx.au3>
    $server = '10.0.1.111'
    $username = ''
    $pass = ''
    $Dir = '/reg/intcrlinfo/'
    $Open = _FTP_Open('ZIC')
    if @error then
        MsgBox(64,"Error","Ошибка подключения")
        Exit
    EndIf
    $Conn = _FTP_Connect($Open, $server, $username, $pass,1)
    if @error then
        MsgBox(64,"Ошибка!","Не могу подключиться к FTP " & @error)
        _FTP_Close($Open)
        Exit
    EndIf
    _FTP_FileGet($Conn,$Dir & '4be.crl', @ScriptDir & '\4be.crl' )
    If @error Then
        _FTP_Close($Open)
        Exit
    Else
        $comm = @SystemDir & '\rundll32.exe cryptext.dll,CryptExtAddCRL ' & @ScriptDir &'\4be.crl'
        Run(@ComSpec & " /c " & $comm, "", @SW_HIDE)
    EndIf
    _FTP_Close($Open)

    Для запуска установки там нужно было пробел поставить в команде!
    Вот как теперь решить проблему с прокси пока не разобрался
    Еще бы не отказался от идеи проверки актуальности файла сравнение по размеру не подходит после изменения файла размер не меняется.

    Всего записей: 248 | Зарегистр. 16-09-2008 | Отправлено: 11:34 23-05-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    1MDI1
    А как проверял? У меня тоже без F5 размер не меняется. Ну и при одинаковом размере файлы могуть быть разными. Сравни с помощью _Crypt_HashFile, смотри в UDF.
     
    Кстати справка обновлена, зеркало, с темой Black, с гуглевским переводом (переведено всё).
     
    Добавил в шапку, в раздел Win API Сайт Владимира Соковикова

    ----------
    home

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 14:17 23-05-2011 | Исправлено: AZJIO, 22:23 23-05-2011
    1MDI1



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO
    Спасибо за
    Цитата:
    Сравни с помощью _Crypt_HashFile

    Теперь осталось решить последнюю проблему - подключение к ФТП через прокси сервер.
    Я уже по разному пробовал ни как не получается.
    Сейчас скрипт работает только через Proxifier - он перенаправляет все программы через прокси. А без него скрипт не подключается даже если прописать прокси сервер в _FTP_Open
    Может есть у кого примерчик или идея как это осуществить?

    Всего записей: 248 | Зарегистр. 16-09-2008 | Отправлено: 07:55 24-05-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AutoIt 3.3.7.1 (бета)
    Список изменений:
     
    Обсуждение на официальном форуме
    Сообщить о найденных ошибках: [Англ.], [Рус.]
     
    Скачать эту версию
     


     
    * Перевод делался на скорую руку, если что-то непонятно (некоторые пункты мне и самому небыли понятны), то лучше перечитайте список на английском.
    * Также можете просмотреть тикеты с баг трекера многих пунктов, для этого просто нажмите на ссылку с номером соответствующего пункта .

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 10:34 24-05-2011 | Исправлено: ViSiToR, 23:12 24-05-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    ViSiToR
    Попробовал, как и написано на оффсайте размер скомпилированного EXE поменьше стал, у меня с 391кб до 356кб уменьшился.
     
    Сделал для кнопки всплывающую панельку, только вот от кнопки реакция пропала, скачать.
     
    Кто знает как для пунктов ListView сделать автоматическое всплывание подсказки при наведении? Подсказка хранится в отдельном массиве с тем же индексом что и пункты в ListView.

    ----------
    home

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 18:40 24-05-2011 | Исправлено: AZJIO, 20:31 24-05-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AZJIO 18:40 24-05-2011
    Цитата:
    как и написано на оффсайте размер скомпилированного EXE поменьше стал, у меня с 391кб до 356кб уменьшился.

    Странно, почему в списке изменений об этом не слова?

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 22:46 24-05-2011
    1MDI1



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Товарищи, ну подскажите как мне подключится к FTP серверу через прокси сервер?
    Вот рабочий код но он работает только без прокси.

    Код:
    #include <FTPEx.au3>
    #include <Array.au3>
    #include <Crypt.au3>
    $server = '10.0.1.111'
    $username = ''
    $pass = ''
    $Dir = '/reg/intcrlinfo/'
    $Open = _FTP_Open('ZIC')
    if @error then
        MsgBox(64,"Error","Ошибка подключения")
        Exit
    EndIf
    $Conn = _FTP_Connect($Open, $server, $username, $pass,1)
    if @error then
        MsgBox(64,"Ошибка!","Не могу подключиться к FTP " & @error)
        _FTP_Close($Open)
        Exit
    EndIf
    ;проверка актуальности CRL
    if FileExists(@ScriptDir & '\4be.crl') Then
        _FTP_FileGet($Conn,$Dir & '4be.crl', @ScriptDir & '\4be1.crl' )
        _Crypt_Startup()
            $hashLocal=_Crypt_HashFile(@ScriptDir & '\4be.crl',$CALG_MD5)
            $hashRemote=_Crypt_HashFile(@ScriptDir & '\4be1.crl',$CALG_MD5)
        _Crypt_Shutdown()
            if $hashLocal=$hashRemote Then
                _FTP_Close($Open)
                Exit
            Else
                instCRL()
            EndIf
    Else
        instCRL()
    EndIf
    ;получение и установка CRL
    Func instCRL()
        _FTP_FileGet($Conn,$Dir & '4be.crl', @ScriptDir & '\4be.crl' )
        If @error Then
            _FTP_Close($Open)
            Exit
        EndIf
        _FTP_Close($Open)
        $comm = @SystemDir & '\rundll32.exe cryptext.dll,CryptExtAddCRL ' & @ScriptDir &'\4be.crl'
        Run(@ComSpec & " /c " & $comm, "", @SW_HIDE)
        WinWaitActive("Мастер импорта сертификатов")
        Send("{ENTER}")
        WinWaitActive("Мастер импорта сертификатов","Хранилище сертификатов")
        Send("{ENTER}")
        WinWaitActive("Мастер импорта сертификатов","Завершение мастера импорта сертификатов")
        Send("{ENTER}")
    EndFunc

    Всего записей: 248 | Зарегистр. 16-09-2008 | Отправлено: 02:47 25-05-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Цитата:
    Кто знает как для пунктов ListView сделать автоматическое всплывание подсказки при наведении? Подсказка хранится в отдельном массиве с тем же индексом что и пункты в ListView.

    Может так?
    Читать дальше..

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 06:02 25-05-2011 | Исправлено: madmasles, 15:12 14-06-2011
    1MDI1



    Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Все вопрос закрыт обошелся без использования функций FTP а заменил получение фала следующей функцией:

    Код:
    Func getCRL($file)
        Local $hDownload = InetGet("ftp://ucecp.e-zab.ru/reg/intcrlinfo/4be.crl", @ScriptDir & $file, 1, 1)
    Do
        Sleep(250)
    Until InetGetInfo($hDownload, 2)    ; Check if the download is complete.
    InetClose($hDownload)   ; Close the handle to release resourcs.
    EndFunc

    Всего записей: 248 | Зарегистр. 16-09-2008 | Отправлено: 09:39 25-05-2011
    GORA2



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

    Цитата:
    Странно, почему в списке изменений об этом не слова?

    Это действительно странно. Второй день ломаю голову, почему у меня размер скомпилированного exe упал с 700 до 600 КБ.
    Не заглянул бы сюда, так бы и не узнал!

    Всего записей: 1271 | Зарегистр. 26-01-2006 | Отправлено: 20:10 25-05-2011
    NIKZZZZ



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

    Цитата:
    Это действительно странно.

    А что странного?
    AutoItSC.bin собственно сам интерпретатор, который вставляется в .exe модуль уменьшился на 90 Кб скорее всего за счет более оптимизированного кода или настроек компилятора.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 21:23 25-05-2011
    ViSiToR



    Silver Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    AutoIt 3.3.7.2 (бета)
     
    Список изменений:

    Цитата:
    - Добавлено: Struct/EndStruct в DllStructCreate() для решения проблемы с выравниванием данных под X86/X64.
     
    - Изменено: Компилирование с VC10. Добавлены обходные решения для Win2000/XP RTM позволяющие выполнение AutoIt, Aut2Exe, Au3Info, Au3Check и AutoItHelp.
     
    - Исправлено #1860: DriveStatus возвращает READY при передаче пустого значения.
    - Исправлено #1854: StringIsFloat возвращает 1 при передаче не float-чисел (числа с плавающей точкой).
    - Исправлено #1910: Замена $TTN_GETDISPINFO на $TTN_GETDISPINFOW.
    - Исправлено #1844: SplashTextOn обрезает переменную при использований флага 32 и @CRLF / @LF.
    - Исправлено #1932: Деинсталлятор, реестр Windows, пути программы. (+beta).
    - Исправлено #1929: SetMenuColor() не работает под 64-ёх битной ОС.
    - Исправлено #1479: Сообщение WM_NOTIFY для X64 ListView.
     
    UDFs:
    - Исправлено #1920: Крах скрипта с устанавливаемой ошибкой в Security.au3 на строке 85.
    - Исправлено #1895: Баги в _GUIScrollBars_Init().
    - Исправлено #1891: Неправильное описание в _ArrayDisplay (......,i$iTranspose,...).

     


     
    Обсуждение бета-версий на форуме русскоязычного сообщества
    Обсуждение на официальном форуме
    Сообщить о найденных ошибках: [Англ.], [Рус.]
     
    Скачать эту версию

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

    Всего записей: 3251 | Зарегистр. 01-04-2006 | Отправлено: 00:06 26-05-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    Хороший вариант, добавил на заметку (потестировал в утилите "Panel_Function").


    Есть функция _WinAPI_ClientToScreen, которая получает координаты клиентского окна в структуру. Но если их получать в ту же структуру, то то происходит сложение. Я попробовал сделать в цикле, но у меня каждый раз создаётся новая структура в переменную. Не будет ли это вызывать лавинообразное заполнение памяти ведь структуры не удаляются?

    ----------
    home

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 19:07 26-05-2011
    Unmodified

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

    Всего записей: 10 | Зарегистр. 15-08-2010 | Отправлено: 19:22 26-05-2011 | Исправлено: Unmodified, 12:34 28-05-2011
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    По утилите "ConverterCMD" такой вопрос: есть операторы в батниках, которые встречаются внутри переменных, например "-" или "="

    Код:
    SET TP=%TP:~0,-1%
    %%var:*23=xyz%%

    Суть проблемы составить регулярное выражение, которое удалит вложенные теги уже после формирования подцветки. Если для HTML это не критично, то для BBCode недопустимо. Обратная проверка выявляет глюк, но важно получить результат, а не предупреждение об неверности преобразования.
     
    Вот мои два варианта
    Код:
    $H16='[0-9A-Fa-f]{6}'
    $HTML=StringRegExpReplace($HTML, '(?mi)(\[color=#'&$H16&'\].*?)(?!\[/color\])\[color=#'&$H16&'\](.*?)\[/color\](.*?\[/color\])', '$1$2$3')
    $HTML=StringRegExpReplace($HTML, '(?mi)(<span class="S\d">.*?)(?!</span>)<span class="S\d">(.+?)</span>(.*?</span>)', '$1$2$3')

    Но не работает по причине того, что комбинация (?!...) не работает для образца (.*?)
    (текст.*?)(?!...) - то есть проверка несовпадения должна определятся для конкретного текста видимо.
    Для примера [тег]34+4[тег]=[/тег]38[/тег] нужно удалить выделенное красным. Может сначала удалить повтор открытия тега, а потом первый из повтора незакрытых тэгов? Иначе многовложенность не поддерживается.
    Вопрос решён пока так
    Код:
    $HTML=StringRegExpReplace($HTML, '(?mi)(\[color=#'&$H16&'\][^\[]*?)\[color=#'&$H16&'\](.+?)\[/color\]', '$1$2')

     
    Unmodified
    На офсайте есть вариант RecFileListToArray от Melba23. Рекурсивный, но быстрый и достаточное количество параметров поиска, включая исключения. Ещё в шапке есть, здесь, предпоследняя строчка.
    Зачем же убирать код? Может через некоторое время может понадобился. Любые варианты всегда на пользу. Я просто показал что есть несколько готовых решений, хотя трудны для понимания мне, и как раз с простых вариантов удобнее учится и настраивать под себя.

    ----------
    home

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 20:13 26-05-2011 | Исправлено: AZJIO, 02:08 27-05-2011
    Zakkazak



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    добрый день
    как насчёт моей просьбы ? решаемо или нерешаемо ?
    AutoIT

    Всего записей: 995 | Зарегистр. 12-01-2005 | Отправлено: 14:33 27-05-2011
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Zakkazak
    Цитата:
    как насчёт моей просьбы

    Сейчас времени нет.
     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 09:26 28-05-2011
       

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