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

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

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Приветствую всех.
     
    Помогите вывести в _ArrayDisplay
     
    Код

    Всего записей: 17 | Зарегистр. 30-12-2013 | Отправлено: 04:50 13-10-2018 | Исправлено: nibble74, 04:51 13-10-2018
    NIKZZZZ



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

    Цитата:
    Помогите вывести в _ArrayDisplay  

    А что выводить то?
    $sOut не массив, а строка, можно конечно ее преобразовать в массив, например так

    Код:
    #include <Array.au3>
    $sOut = ''
    $iPID = Run('cmd.exe /?', @SystemDir, @SW_HIDE, $STDOUT_CHILD)
     
    While 1
    $sOut &= StdoutRead($iPID)
    If @error Then ExitLoop
    WEnd
    MsgBox(4096, "", $sOut)
    _ArrayDisplay(StringSplit($sOut,@CRLF,1))

     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 05:08 13-10-2018
    nibble74

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
     
    Вот с этим String и была у меня загвоздка, нужно было без последней пустой строки в массиве.
    Сделал так  StringSplit(StringTrimRight(StringStripCR($sOut), 1), @CRLF)
     
    Спасибо.

    Всего записей: 17 | Зарегистр. 30-12-2013 | Отправлено: 14:22 13-10-2018 | Исправлено: nibble74, 14:24 13-10-2018
    elchupakabra



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Уважаемые, подскажите пожалуйста реализацию на AutoIt команды:
    set "AppData=%cd%\config"
    Заранее спасибо.

    Всего записей: 1571 | Зарегистр. 05-11-2005 | Отправлено: 11:13 25-10-2018
    Smitis



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

    Цитата:
    Уважаемые, подскажите пожалуйста реализацию на AutoIt команды:
    set "AppData=%cd%\config"  


    Код:
    EnvSet("AppData",@WorkingDir & "\config")



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

    Всего записей: 3233 | Зарегистр. 09-02-2003 | Отправлено: 11:57 25-10-2018
    NIKZZZZ



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

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 13:01 25-10-2018 | Исправлено: NIKZZZZ, 14:53 25-10-2018
    Smitis



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

    Цитата:
    Еще вариант

    CD - локальная переменная CMD. Работать не будет.


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

    Всего записей: 3233 | Зарегистр. 09-02-2003 | Отправлено: 14:32 25-10-2018 | Исправлено: Smitis, 14:34 25-10-2018
    NIKZZZZ



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

    Цитата:
    CD - локальная переменная CMD. Работать не будет.  

    Да, как-то это не учел.
    Тогда так

    Код:
    Opt("ExpandEnvStrings",1)
    EnvSet("AppData","%__CD__%config")


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:52 25-10-2018
    elchupakabra



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Очень, признателен за помощь в недавним вопросом, но тут ещё один появился.
     
    Это не значит, что буду постоянно докучать хотелками, он просто давненько уже возник, но вот сейчас при сборке PotPlayer вспомнил про него, а мои знания в AutoIt увы зачаточны, сам или не справлюсь или до-о-олго буду мучаться.
     
    Для использования в PotPlayer примочки libtorrent в системах ниже Win8.1 ссылку надо обработать (считается, что magnet-ссылка уже скопирована и работаем мы с буфером).
     
    Вот первая попавшаяся со страницы rutor'a:
    Код:
     
    magnetxt=urn:btih:a99ba5b786fe6dadfa7894de6fed1ff09579c827&dn=rutor.info_%D0%92%D0%BE%D1%80%D0%BE%D0%BD%D0%B0+%5B01-03+%D0%B8%D0%B7+12%5D+%282018%29+WEBRip+%D0%BE%D1%82+Files-x&tr=udp://opentor.org:2710&tr=udp://opentor.org:2710&tr=http://retracker.local/announce
    Что нужно:
    1. Обрезать всё что после magnetxt=urn:btih:a99ba5b786fe6dadfa7894de6fed1ff09579c827
    Резать, я так понимаю, можно просто по количеству символов, немного тестировал на разных трекерах, оно одинаковое, т.е. 75
    2. добавить слева обрезанного текста символы: libtorrent://0,
    3. Т.е. должно получиться после обрезки и склейки: libtorrent://0,magnetxt=urn:btih:a99ba5b786fe6dadfa7894de6fed1ff09579c827
    Полученное копируется в буфер
     
    p.s. тут смайл вылез вместо группы символов, но думаю особо на суть не повлияет вопроса

    Всего записей: 1571 | Зарегистр. 05-11-2005 | Отправлено: 10:58 30-10-2018 | Исправлено: elchupakabra, 11:00 30-10-2018
    NIKZZZZ



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

    Код:
    $sMaghet='magnet:?xt=urn:btih:a99ba5b786fe6dadfa7894de6fed1ff09579c827&dn=rutor.info_%D0%92%D0%BE%D1%80%D0%BE%D0%B....'
    $sRes=StringRegExpReplace($sMaghet,'(?i)(magnet:[^&]+).*','libtorrent://0,\1')
    MsgBox(4096,$sMaghet,$sRes)

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 11:22 30-10-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Началось здесь, в итоге пришёл сюда - хороший пример программно получить выделенные файлы или пути к открытым папкам.

    Всего записей: 4414 | Зарегистр. 03-05-2006 | Отправлено: 14:33 09-11-2018
    Retro222

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, а почему вы не переводите дальше?
     
    Ведь версии уже давно ушли вперёд.

    Всего записей: 260 | Зарегистр. 21-09-2018 | Отправлено: 15:52 09-11-2018 | Исправлено: Retro222, 15:53 09-11-2018
    AZJIO



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

    Всего записей: 4414 | Зарегистр. 03-05-2006 | Отправлено: 10:52 10-11-2018
    LevT



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

    Дайте примеры кликанья по окнам и гиперссылкам нового интерфейса десятой винды
     
    Я хочу пошарить в Windows Settings.
    Например:
    1) Зайти в Accounts -> Family and other users -> Add someone else to this PC
    2) щёлкнуть по гиперссылке 'I don't have this person's sign-in information',  
    3) дождаться следующего экрана, а затем
    4) щелкнуть 'Add a user without Microsoft account'
     
     
    Добавлено:
     
    ЗЫ. Предпочтительно не привязываться к надписям: понятно, что в русской винде они будут другие.

    Всего записей: 17206 | Зарегистр. 14-10-2001 | Отправлено: 21:47 13-11-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LevT
    Пример изменение шрифта, хотя тестировал только в LiveCD.

    Всего записей: 4414 | Зарегистр. 03-05-2006 | Отправлено: 13:00 14-11-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    LevT
    Не проще использовать командную строку? net вроде всем этим рулит -
     пользователи, группы и т.п.?

    Всего записей: 6491 | Зарегистр. 28-01-2008 | Отправлено: 13:34 14-11-2018
    LevT



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
     
    Если в достаточно свежей десятке (то есть по крайней мере 1709) не создавались пользователи мышкой, то
    создать-то пользователя командной строкой можно, но залогиниться им нельзя.
     
    У меня так на нескольких системах: позавчера этим озадачился.
     
    Но вообще-то я согласен: лезть автоматизировать новый интерфейс стоит только ради более великой цели.
    Например, ради клепания MS учёток (а не только локальных).
    Получился бы ценный трофей: мне неизвестны способы хотя б частично автоматизировать их создание.

    Всего записей: 17206 | Зарегистр. 14-10-2001 | Отправлено: 16:24 14-11-2018 | Исправлено: LevT, 09:29 15-11-2018
    Andrey_A_A



    Advanced Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Функция _WinAPI_GetFileInformationByHandleEx использует структуру $tagFILEINFO
    Подскажите как получить дату. В массиве от 1 до 4 возвращаются числа. Как сконвертировать их в обычную дату вида YYYY/MM/DD HH:MM:SS?..
     

    Код:
    ; $tagFILEINFO = 'uint64 CreationTime;uint64 LastAccessTime;uint64 LastWriteTime;uint64 ChangeTime;dword Attributes;'
    #include <WinAPIFiles.au3>
    #include <Array.au3>
     
    Local $aInfo[6]
    Local $hFile = _WinAPI_CreateFile(@AutoItExe, 2, 0, 6)
    Local $tFI = _WinAPI_GetFileInformationByHandleEx($hFile)
    $aInfo[1]=DllStructGetData($tFI,1)
    $aInfo[2]=DllStructGetData($tFI,2)
    $aInfo[3]=DllStructGetData($tFI,3)
    $aInfo[4]=DllStructGetData($tFI,4)
    $aInfo[5]=DllStructGetData($tFI,5)
    _WinAPI_CloseHandle($hFile)
     
    _ArrayDisplay($aInfo)

    Всего записей: 1400 | Зарегистр. 15-08-2011 | Отправлено: 18:59 19-11-2018
    AlexandrPessimist



    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Здравствуйте. Может кто подсказать по функции StringRegExp? Есть переменная, содержащая текст в Unix формате (концы строк - LF), например:
    Код:
    # Комментарий
    Первая рабочая строка
     
    Вторая рабочая строка
     
     
    Мне нужно исключить пустые строки и строки с комментами (начинаются с #), а остальные строки передать в другую функцию. Делаю так:
    Код:
     
    Dim $lines = StringSplit($AllText, @LF, 1); Разбиваю весь текст на строки
    For $i = 1 To $lines[0]
        ; Проверяю каждую строку на несоответствие шаблону - если не соотв., тогда передаю строку в функцию
        If StringRegExp($lines[$i], '(^#)', 0, 1) = 0 Or StringRegExp($lines[$i], '(^\n)', 0, 1) = 0 Then _MyFunction()
        Sleep(100)
    Next
    В итоге строки с комментами пропускаются, а пустые строки передаются. Как правильно указать в шаблоне пустую строку?
    В справке готового примера нет, пробовал вместо '(^\n)' указывать: '\n' или '^\n', результата не дало. Просто указать @LF нельзя - он (символ) есть в каждой строке, потому пробовал его искать вначале строки..

    Всего записей: 21 | Зарегистр. 19-02-2016 | Отправлено: 05:03 20-11-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexandrPessimist
    Вы используете @LF чтобы разрезать строку в массив - в получившемся массиве их больше нет, но пытаетесь его искать. Как-то так можно попробовать:

    Код:
    Dim $lines = StringSplit($AllText, @LF, 1)
    For $i = 1 To $lines[0]
        If (StringLen($lines[$i]) >= 1) And (StringMid($lines[$i], 1, 1) <> '#') Then
            _MyFunction()
        EndIf
    Next

    Если перед # могут быть пробелы/табуляции, то можно заменить StringMid() на

    Код:
    StringRegExp($lines[$i], '^[\t ]+#', 0)

    Ну или перед тем, как резать, заменить два и более символа \n подряд на один.
     
     
    Andrey_A_A
    _Date_Time_FileTimeToStr() не пробовали?

    Всего записей: 6491 | Зарегистр. 28-01-2008 | Отправлено: 07:00 20-11-2018 | Исправлено: Skif_off, 07:00 20-11-2018
       

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