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

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



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

    Цитата:
    А не проще заюзать генератор файла ответов?  

    Свой скрипт, если, конечно он нормально написан, всегда на порядок лучше универсального.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 16:36 09-10-2017
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    Так в шапке же есть ссылки...
    Вот:

    Всего записей: 745 | Зарегистр. 24-04-2016 | Отправлено: 16:43 09-10-2017
    dialmak



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

    Цитата:
    Свой скрипт, если, конечно он нормально написан

    Хм. Я уж много лет юзаю один и тот же файл ответов для всех ОС, он прост как двери и работает на всех линейках ОС.  
    Хотя все зависит от задачи..
    Если любишь эксперименты,  то есть и варианты онлайн и спецпроги коих немеряно.
     
    Добавлено:
    Я, если откровенно не очень понимаю зачем такие генераторы, но факт налицо.
    MS даже сделала генератор файла ответов для Office C2R 2013\2016
    https://officedev.github.io/Office-IT-Pro-Deployment-Scripts/XmlEditor.html
     
    Добавлено:
    Хм. Уже убрали генератор для 2013..

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 16:46 09-10-2017 | Исправлено: dialmak, 16:53 09-10-2017
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, не спорьте! Вы меня не правильно поняли, мне нужно просто индикатор, какая раскладка(русская или английская) сейчас выбрана. А в файле ответов я меняю лишь имя и название компьютера ( у каждого пожелания свои).
    А скрипт выложил на всякий случай, чтоб не гадать...

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 17:10 09-10-2017 | Исправлено: AlexM2222, 17:12 09-10-2017
    dialmak



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

    Всего записей: 14007 | Зарегистр. 27-04-2013 | Отправлено: 10:45 11-10-2017
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, попробую ещё раз объяснить. У меня есть форма, скрипт которой выложил, мне нужно чтобы в том месте, где указал - был индикатор раскладки клавиатуры(RU или EN). Именно в том месте. В написании скриптов я не спец, если можно, поправьте мой скрипт. Заранее спасибо всем откликнувшимся!!!

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 12:36 11-10-2017 | Исправлено: AlexM2222, 12:38 11-10-2017
    Udavvf



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

    Цитата:
    если можно, поправьте мой скрипт

    http://rgho.st/private/6rmjDVvYt/bb8e2c6b436488c64a0b9677ab8e66e5

    Всего записей: 7 | Зарегистр. 21-11-2011 | Отправлено: 16:17 11-10-2017 | Исправлено: Udavvf, 16:18 11-10-2017
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Udavvf, огромное спасибо,  как говорится - то что доктор приписал!!!

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 21:45 11-10-2017
    Udavvf



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

    Цитата:
    то что доктор приписал!!!  

    Я там забыл раскомментировать код меняющий разрешение экрана, с 60 по 91 строчки

    Всего записей: 7 | Зарегистр. 21-11-2011 | Отправлено: 15:12 12-10-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    Вместо Dim используй Local

    Код:
    $stext = FileWrite($hfile, $stext)

    зачем возвращать результат FileWrite? Копировалось с $stext = FileRead($hfile)?
     

    Код:
    Global $stext = FileRead($hfile)

    Global внутри функций не используют, хоть и работает. Хотя сойдёт, я сам так делал.
     

    Код:
    Func checkworkgroup()
        Dim $arrayworkgroup[9] = ['"', "\", "/", ":", "*", "?", "<", ">", "|"]
        $sstring = GUICtrlRead($workgroup)
        For $i = 0 To 8
            $isearch3 = StringInStr($sstring, $arrayworkgroup[$i], 0)
            If $isearch3 <> 0 Then ExitLoop
        Next

    Этот код пишется проще:

    Код:
    If StringRegExp($sstring, '[/:*"?<>|]') Then MsgBox(0, 'ай', 'Недопустимые символы')
    If StringRegExp($sstring, '[\s"{|}~^'':;<=>?@!#$%`()+/\\.,\]\[]') Then MsgBox(0, 'ай', 'Недопустимые символы')

     

    Код:
    GUICtrlCreateGroup("", -99, -99, 1, 1)
    закрытие группы нужно только для радиокнопок, чтобы определить переключаемые элементы. В остальном оно работает как картинка, визуально объединяя элементы.
     
    Можно добавить кнопку "транслитерация", для конвертации отображаемого имени в англ. в верхнее поле.
     
    Switch  вызывает GetActiveKeyboardLayout один раз, а не на каждый язык.

    Код:
    Func KBDLayout()
        Switch GetActiveKeyboardLayout($hWnd)
            Case "0409"
                $layout = "EN"
            Case "0419"
                $layout = "RU"
            Case Else
                $layout = "?" ; а вдруг украинский, белорусский, и т.д. тогда что?
        EndSwitch
        if $layout = $layout_old Then Return
        $layout_old = $layout
        GUICtrlSetData($Label5, $layout)
    EndFunc

     
    я там нули убрал в Return Hex($aRet[0], 4) и сравнил как текст, а не текст с цифрой. Коды языков можешь взять тут (пример в конце)

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 17:27 15-10-2017 | Исправлено: AZJIO, 17:33 15-10-2017
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, спасибо за советы. Принял к исправлению почти всё кроме:
     
    Цитата:
    Этот код пишется проще:

    Так мне не подходит, не нужны лишние MsgBox...

    Цитата:
    Можно добавить кнопку "транслитерация"

    Не понял как вставить и как это работает...

    Цитата:
    Код:
    $stext = FileWrite($hfile, $stext)  

    без этого кода удаляется всё содержание файла Unattend1.xml
     
    Вот окончательный вариант, что у меня получилось(буду благодарен за другие замечания)
     
    SetupConfig_test.au3 (Исправленный)
     
    Unattend1.xml

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 11:00 17-10-2017 | Исправлено: AlexM2222, 11:58 20-10-2017
    AZJIO



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

    Цитата:
    Так мне не подходит, не нужны лишние MsgBox..

    мы же понимаем что суть не в MsgBox...
     

    Цитата:
    Не понял как вставить и как это работает...  

    В этом скрипте вытащи. Ну работает также, вводишь по русски имя, а там вводится по английски. Иначе в чём суть разных имён?
     

    Цитата:
    без этого кода удаляется всё содержание файла Unattend1.xml  

    ключевое слово возвращать. Про код я ничего не говорил.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 17:21 17-10-2017
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, не сочтите за назойливость!
    Загорелся вашей идеей

    Цитата:
    Можно добавить кнопку "транслитерация", для конвертации отображаемого имени

    Переделал скрипт(как мог), подсмотрел здесь . Теперь у меня в строке "Отображаемое имя пользователя" можем писать и по русски, и по английски, а в строке "Имя пользователя (его папки)" "транслитется" по английски(так оно и надо).  

    Вроде всё работает, но с моими небольшими познаниями может где закралась ошибка, если не сложно посмотрите...
    Скрипт прикрепил к прошлому посту, спасибо всем за помощь!
     

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 11:54 20-10-2017 | Исправлено: AlexM2222, 13:02 20-10-2017
    nibble74

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
     
    Можно добавить кнопку для выбора файла ответов.

    Код:
     
    #include <FileConstants.au3>
     
    Global $xmlpath = @ScriptDir & "\unattend.xml"
    ---
    $btn = GUICtrlCreateButton("A", 16, 130, 30, 23)
    ---
    filescheck()
    ---
    GUISetState(@SW_SHOW)
    While 1
        $nmsg = GUIGetMsg()
        Call(KBDLayout)
        Switch $nmsg
            Case $btn
                $xmlcheck = FileOpenDialog("Выберите файл автоустановки", "", "(*.xml)|(*.*)", $FD_FILEMUSTEXIST, "Autounattend", $Form1)
                If @error Then ContinueLoop
                Global $xmlpath = $xmlcheck
                GUICtrlSetTip($btn, "Выбран файл автоустановки:" & @CRLF & $xmlpath, "Примечание", 1)
                GUICtrlSetBkColor($btn, 0x00FF00)
        EndSwitch
    WEnd
     
    Func filescheck()
        If Not FileExists($xmlpath) Then
            MsgBox(16 + 262144, "ВНИМАНИЕ", "Не найден файл, необходимый для автоустановки:" & @CRLF & $xmlpath)
            GUICtrlSetTip($btn, "Выберите файл автоустановки.", "Примечание", 3)
            GUICtrlSetBkColor($btn, 0xFF0000)
        Else
            GUICtrlSetTip($btn, "Выбран файл автоустановки:" & @CRLF & $xmlpath, "Примечание", 1)
            GUICtrlSetBkColor($btn, 0x00FF00)
        EndIf
    EndFunc
     
    Func go()
        $hfile = FileOpen($xmlpath, 0 + 128)
        $stext = StringRegExpReplace($stext, "(<CommandLine>cmd /c net localgroup Пользователи )(.+)( /delete</CommandLine>)", "\1" & StringStripWS(GUICtrlRead($name), 3) & "\3", 0)
        $hfile = FileOpen($xmlpath, 2 + 128)
        RunWait("x:\setup.exe /unattend:""" & $xmlpath & """")
    EndFunc
     

     
    Так проще будет:

    Код:
     
    Func checkcompname()
        If StringRegExp(GUICtrlRead($compname), '[1234567890\s"{|}~^'':;<=>?@!#$%`()+/\\.,\]\[]') Then
            GUICtrlSetData($status, "Недопустимые символы")
            GUICtrlSetColor($status, 0xFF0000)
            GUICtrlSetColor($compname, 0xFF0000)
            $dataerror = 1
        Else
            GUICtrlSetColor($compname, 0)
        EndIf
    EndFunc
     
    Func checkworkgroup()
        If StringRegExp(GUICtrlRead($workgroup), '[1234567890\s"{|}~^'':*;<=>?@!#$%`()+/\\.,\]\[]') Then
            GUICtrlSetData($status, "Недопустимые символы")
            GUICtrlSetColor($status, 0xFF0000)
            GUICtrlSetColor($workgroup, 0xFF0000)
            $dataerror = 1
        Else
            GUICtrlSetColor($workgroup, 0)
        EndIf
    EndFunc
     

     
    Ощибки в коде, надо так:
    не localgroups а localgroup
    не GUICtrlRead($displayname) а GUICtrlRead($name)
    в конце всего кода лучше использовать 0), т.к бывают совмещённые файлы ответов x86 и x64

    Код:
     
        $stext = StringRegExpReplace($stext, "(<CommandLine>net localgroup Пользователи )(.+)( /delete</CommandLine>)", "\1" & StringStripWS(GUICtrlRead($name), 3) & "\3", 0)
     


    Всего записей: 17 | Зарегистр. 30-12-2013 | Отправлено: 00:08 21-10-2017
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nibble74, здравствуйте! Спасибо за советы!!
    По поводу:
    1)
    Цитата:
    Можно добавить кнопку для выбора файла ответов.  

    Думаю для моего случая не стоит, пока не буду добавлять, а там посмотрим...
    2)
    Цитата:
    Так проще будет:  

    а для чего добавлять цифры в запрещённые символы, они вроде разрешены...
    3)
    Цитата:
    Ощибки в коде, надо так:  

    За это огромное спасибо, моя давняя "борода"(перечитал ещё раз свои старые наработки и unattended.oszone.net - увидел свои ошибки). Хотя как-то и так работало...
     
     

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 08:12 21-10-2017 | Исправлено: AlexM2222, 17:03 21-10-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    Можно вместо красного текста просто запретить ввод запрещённых символов. Пример

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 07:16 22-10-2017
    AlexM2222



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

    Всего записей: 116 | Зарегистр. 05-09-2010 | Отправлено: 08:23 22-10-2017
    sov44



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Друзья, нужен код или утилита для отключения\включения самозащиты KFA (настройка-дополнительно-самозащита (снять\поставить) галочку)
    Конечная цель - смена иконки в трее с KFA на более привычную KAV. (доработаю батником)

    Всего записей: 103 | Зарегистр. 13-03-2007 | Отправлено: 08:42 29-10-2017
    uzeerpc



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, есть ли portable-сборка не требующая для запуска прав админа? Человеку необходимо запустить на рабочем компьютере. Возможно ли это?

    Всего записей: 1080 | Зарегистр. 09-01-2016 | Отправлено: 13:03 12-11-2017 | Исправлено: uzeerpc, 13:19 12-11-2017
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    uzeerpc
    Извлеки дистриб на флешку. Автоит работает сам по себе. Zip качай отсюда (последнюю в списке - последняя версия)

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 09:12 14-11-2017 | Исправлено: AZJIO, 09:14 14-11-2017
       

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