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

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



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

    Всего записей: 4409 | Зарегистр. 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'
     
     
    Добавлено:
     
    ЗЫ. Предпочтительно не привязываться к надписям: понятно, что в русской винде они будут другие.

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



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

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

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

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



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

    Всего записей: 17149 | Зарегистр. 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)

    Всего записей: 1389 | Зарегистр. 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() не пробовали?

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



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

    Цитата:
    _Date_Time_FileTimeToStr() не пробовали?

    Пробовал, там нужно передавать структуру, а тут приходит 18-ти значное число и что с ним делать..., т.е. как преобразовать...
    Из числа 131870541631059319 надо получить дату 2018/11/18 22:36:3
    ------- Добавлено -----
    Кому интересно, то решение http://autoit-script.ru/index.php?topic=26307.0

    Всего записей: 1389 | Зарегистр. 15-08-2011 | Отправлено: 09:12 20-11-2018 | Исправлено: Andrey_A_A, 17:10 21-11-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Andrey_A_A
    Похоже, тут не структура выходит, а готовые данные, и если структура FILETIME отдаёт количество 100-наносекундных интервалов с 1 января 1601 г., то можно пересчитать на секунды или миллисекунды простой математикой? Дальше пока нет идей Не могу сейчас проверить и нашёл тут конвертер на пробу, вдруг пригодится.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 12:02 20-11-2018
    LevT



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

    Цитата:
    Run('rundll32.exe shell32.dll,Control_RunDLL desk.cpl') ; Запуск панели

     
    Таким образом добавление юзеров не запустишь
     

    Код:
     
    PS>  'c:\windows' | Get-ChildItem -Recurse -Filter *.cpl | Select-Object Name -Unique | Sort name
     
    Name
    ----
    appwiz.cpl
    bthprops.cpl
    desk.cpl
    Firewall.cpl
    FlashPlayerCPLApp.cpl
    hdwwiz.cpl
    igfxCPL.cpl
    inetcpl.cpl
    intl.cpl
    irprops.cpl
    joy.cpl
    main.cpl
    mmsys.cpl
    ncpa.cpl
    powercfg.cpl
    RTSnMg64.cpl
    sapi.cpl
    sysdm.cpl
    TabletPC.cpl
    telephon.cpl
    timedate.cpl
    wscui.cpl
     


    Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 12:42 20-11-2018
    Smitis



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

    Цитата:
    Если в достаточно свежей десятке (то есть по крайней мере 1709) не создавались пользователи мышкой, то
    создать-то пользователя командной строкой можно, но залогиниться им нельзя

    Сейчас ради эксперимента создал пользователя через net user (Win10 x64 1803). И сразу залогинился в него (через сменить пользователя).


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

    Всего записей: 3214 | Зарегистр. 09-02-2003 | Отправлено: 13:09 20-11-2018
    LevT



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

    Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 13:39 20-11-2018
    LevT



    Platinum Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Smitis
    похоже, что net user сразу добавляет пользователя в группу Users (с привилегией интерактивного логона), а в Powershell и в lusrmgr.msc это надо делать явно.
     
     
    ALL
    Тем не менее, автоматизировать мышеклики в новом виндовом интерфейсе вполне себе задача.
    Хотя бы ради сверхцели: упростить создание MS учёток..
     
    Я тут эксперимента ради поставил навороченный и жадный аналог автоита
     
    Так вот фокус он ещё способен наводить на некоторые элементы, но чтобы кликнуть куда надо - конкретно в кнопки 'Home' или '<' (Back) интерфейса 'Settings' - у него не хватает "интеллекта" разобрать указанную ему цель.
    Или та шифруется..
     
     
    Добавлено:
     
    Понимаю, что кликать по этим окнам извращение, но..
    вряд ли майки предоставят способ скриптовать создание учёток своего облака и делать прочие "чувствительные" вещи

    Всего записей: 17149 | Зарегистр. 14-10-2001 | Отправлено: 14:41 21-11-2018 | Исправлено: LevT, 14:49 21-11-2018
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, столкнулся с интересной ситуацией в текущей версии AutoIT (3.3.14.5), оказывается обновилась библиотека "Crypt.au3", что не удивительно.
    Старый, добрый пример проверки контрольных сумм не работает (всегда ошибка при проверки заведомо верных хешей):

    Код:
    #include <Crypt.au3>
     
    $sFile = @ScriptDir & '\Program.exe'                  ;; Полный путь к файлу.
    $bHashStandard = '0x0a0aaf46f785fe89f0c8de52aa33d3bd' ;; MD5-хеш файла.
     
    $bHash = _Crypt_HashFile($sFile, $CALG_MD5)
    If @error Then
    MsgBox(16, 'Ошибка!', 'Файл не найден!')
    Else
    ConsoleWrite($bHash & @LF)
    If $bHash == $bHashStandard Then
    MsgBox(64, 'Информация', 'MD5-хеш файла совпадает!')
    Else
    MsgBox(16, 'Ошибка!', 'MD5-хеш файла не совпадает!')
    EndIf
    EndIf

    Может кто-нибудь правил данный скрипт под новые версии библиотеки? Буду Вам признателен за помощь и советы.

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 02:19 14-12-2018 | Исправлено: Artem_Butenko, 02:45 14-12-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Artem_Butenko
    Именно эта функция изменилась не очень сильно и, думаю, скрипт не сообщает об ошибке в ней. Провеьте, в каком регистре получается $bHash: проверка равенства с "==" для строк и идёт с учётрм регистра.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 02:58 14-12-2018
    Fom64

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Artem_Butenko
    В чем смысл использовать "==" для сравнения значений типа Number?

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 09:35 14-12-2018
    Artem_Butenko



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

    Цитата:
    Artem_Butenko
    В чем смысл использовать "==" для сравнения значений типа Number?

     
    Пожалуйста, предложите другой вариант?

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 14:12 14-12-2018
    NIKZZZZ



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

    Цитата:
    Пожалуйста, предложите другой вариант?

    В место "==" использовать "=", чтобы не зависеть от регистра при сравнении строк.  

    Код:
    If $bHash = $bHashStandard Then

     
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 14:24 14-12-2018
    penguen



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

    Всего записей: 451 | Зарегистр. 04-03-2005 | Отправлено: 16:22 17-12-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