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

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

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    gfhctr
    В справке, тут или на русском.
    Но тут ошибка не в операндах, а в объединении строк и переменных.

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 14:05 29-06-2018
    gfhctr

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Спасибо за помощь, Skif_off!

    Всего записей: 23 | Зарегистр. 02-07-2005 | Отправлено: 13:20 02-07-2018
    Slavoksss

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    подскажите  как декомпилировать x64 скрипт ??

    Всего записей: 51 | Зарегистр. 05-08-2010 | Отправлено: 17:23 07-07-2018
    CryptoUsbtor



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Slavoksss скрипт, не имеет разрядности...
    только ядро...
    вытаскиваете ресурс из x64 и пихаете в файл х32
    и извлекаем обычным образом.

    Всего записей: 771 | Зарегистр. 24-04-2016 | Отправлено: 18:57 07-07-2018
    tiger690

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    В этой программе есть планировщик?  
    Который по расписанию выполняет нужный код?

    Всего записей: 2006 | Зарегистр. 16-04-2015 | Отправлено: 19:04 27-07-2018
    Artem_Butenko



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

    Всего записей: 725 | Зарегистр. 19-02-2008 | Отправлено: 23:00 01-08-2018 | Исправлено: Artem_Butenko, 23:02 01-08-2018
    NIKZZZZ



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

    Код:
    $sDriveLetter = ''
    $iDriveSpaceFreeX = -1
    $asDrive = DriveGetDrive('fixed')
    For $i = 1 To $asDrive[0]
        If $asDrive[$i] <> EnvGet('SystemDrive') Then
            $iDriveSpaceFree = DriveSpaceFree($asDrive[$i])
            If $iDriveSpaceFree > $iDriveSpaceFreeX Then
                $sDriveLetter = $asDrive[$i]
                $iDriveSpaceFreeX = $iDriveSpaceFree
            EndIf
        EndIf
    Next
    MsgBox(4096, 'Drive', $sDriveLetter & ' size ' & $iDriveSpaceFreeX)
     


    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 23:26 01-08-2018 | Исправлено: NIKZZZZ, 23:30 01-08-2018
    nibble74

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Дайте пример для поиска файлов по расширению и объявления найденных имён файлов в переменные.
     
    На данный момент делаю так:
    $hFile = FileOpen("test.txt", 2)
    $hSearch = FileFindFirstFile("*.iso")
    While 1
        $sFile = FileFindNextFile($hSearch)
        If @error Then ExitLoop
        ;FileWriteLine($hFile, $sFile)
           ;Вот здесь вместо FileWriteLine нужно реализовать запись в переменные
    WEnd
    FileClose($hSearch)
    FileClose($hFile)
     
    Переменные такого вида:
    Local $iso1 = "имя_файла_1"
    Local $iso2 = "имя_файла_2"
    и т.д. в зависимости от количества найденных файлов.
     
    Использую FileWriteLine и потом считываю test.txt и объявляю переменные, но это очень неудобно, хотелось бы отказаться от FileWriteLine.
    Помогите пожалуйста.

    Всего записей: 17 | Зарегистр. 30-12-2013 | Отправлено: 23:48 06-08-2018
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nibble74
    Почему бы не хранить список в массиве? Вы же потом с каждым что-то будете делать? Если так

    Код:
    $sList = ""
    $hSearch = FileFindFirstFile("*.iso")
    While 1
        $sFile = FileFindNextFile($hSearch)
        If @error Then ExitLoop
        $sList &= $sFile & @LF
    WEnd
    FileClose($hSearch)
    $aList = StringSplit(StringStripWS($sList, 1 + 2), @LF)

    то в $aList[0] будет общее количество найденных, а обработать все по очереди можно будет в цикле

    Код:
    For $i = 1 To $aList[0]
        MsgBox(4096, "Test", $aList[$i])
    Next

    Всего записей: 6596 | Зарегистр. 28-01-2008 | Отправлено: 05:56 07-08-2018
    tiger690

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

    Всего записей: 2006 | Зарегистр. 16-04-2015 | Отправлено: 08:58 07-08-2018
    RW4PIR



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    Ребят, а AutoIt 3 умеет работать с сетью? Забирать например регистры по айпишникам.

    Всего записей: 563 | Зарегистр. 16-03-2009 | Отправлено: 09:19 07-08-2018
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    tiger690
     Можно запустить из AutoIt скрипта SchTasks.exe с нужными параметрами.
    RW4PIR да, умеет.

    Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 11:03 07-08-2018
    tiger690

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

    Цитата:
    Можно запустить из AutoIt скрипта SchTasks.exe с нужными параметрами.  

    Ну то есть использовать стандартный планировщик, и управлять заданиями через AutoIT?

    Всего записей: 2006 | Зарегистр. 16-04-2015 | Отправлено: 12:10 07-08-2018
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Так точно.
     Или используя функции времени написать свой планировщик на autoit.

    Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 12:24 07-08-2018 | Исправлено: U235, 12:26 07-08-2018
    RW4PIR



    Full Member
    Редактировать | Профиль | Сообщение | ICQ | Цитировать | Сообщить модератору
    U235
    пример реализации можно?

    Всего записей: 563 | Зарегистр. 16-03-2009 | Отправлено: 13:02 07-08-2018
    nibble74

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
     
    Вот для наглядности часть скрипта:
     

    Код:
    $hSearch = FileFindFirstFile("*.iso")
    $hFile = FileOpen("test.txt", 2)
    While 1
        $NextFile = FileFindNextFile($hSearch)
        If @error Then ExitLoop
        FileWriteLine($hFile, $NextFile)
    WEnd
    FileClose($hSearch)
    FileClose($hFile)
    $hFile = FileOpen('test.txt')
    If FileReadLine($hFile, 1) Then $Iso1 = StringTrimRight(FileReadLine($hFile, 1), 4)
    If FileReadLine($hFile, 2) Then $Iso2 = StringTrimRight(FileReadLine($hFile, 2), 4)
    FileClose($hFile)
    $sFile = $Iso1
     
    $hGUI = GUICreate("", 530, 290, -1, -1, 0x00040000)
    $TreeView = GUICtrlCreateTreeView(15, 15, 505, 215, 0x0020+0x0200+0x1000, 0x00000200)
    $id1 = GUICtrlCreateTreeViewItem("  " & $Iso1, $TreeView)
    $id2 = GUICtrlCreateTreeViewItem("  " & $Iso2, $TreeView)
    ; >>
    $Btn = GUICtrlCreateButton("Распаковать", 210, 234, 100, -1, 0x00800000)
     
    GUISetState(@SW_SHOW)
    While 1
        $nMsg = GUIGetMsg()
        Switch $nMsg
            Case -3
                Exit
     
            Case $id1
                $sFile = $Iso1
            Case $id2
                $sFile = $Iso2
     
            Case $Btn
                MsgBox(0, "TEST", $sFile)
        EndSwitch
    WEnd
     

     
    В Case $Btn присутствуют несколько команд, кроме того в Gui есть ещё и GuiCtrlCreateCheckbox-ы, вообщем команд там несколько и везде подставляется $sFile.
    В прошлом сообщении забыл написать, что имена нужны без расширений.
    Вот и проблема возникла потому, что количество образов может варьироваться.
    Мозг кипит уже, не знаю как бы это дело скомпоновать.
     
    И да на счёт массива идея хороша конечно.

    Всего записей: 17 | Зарегистр. 30-12-2013 | Отправлено: 14:21 07-08-2018 | Исправлено: nibble74, 14:27 07-08-2018
    U235

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RW4PIR
    Вот пример планировщика в виде udf
    https://www.autoitscript.com/forum/topic/83355-task-scheduler-udf/
    Или вот http://autoit-script.ru/index.php?topic=14375.0
    А вообще можно погуглить на тему autoit scheduler

    Всего записей: 980 | Зарегистр. 14-12-2005 | Отправлено: 16:09 07-08-2018 | Исправлено: U235, 16:11 07-08-2018
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    nibble74
    используй _FileListToArray для получения массива файлов. А лучше объясни задачу, а то мозг кипит разгадывать твой код, просто видно что всё в куче перемешано и люди и кони.
     
    временный пример на версии 3.3.8.1
    https://pastebin.com/wb8kaYgt
     
    точно надо сохранять в файл? без сохранения то легче, в массив засунул и всё, а так мы список создаём сохраняем и опять его читаем по строкам, когда можно было из массива взять первый элемент и не делать такой запутанный трюк.
     
    используй @ScriptDir, чтобы брать файлы возле exe иначе рабочий каталог будет транслироваться например от cmd файла, если скрипт запущен батником.
     
    обновил пример по ссылке ещё раз

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 17:46 07-08-2018 | Исправлено: AZJIO, 18:38 07-08-2018
    nibble74

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
     
    Идея была такова что-бы при запуске скрип искал в папке файлы с заданным расширением и выводил в GUI список всех найденных файлов (только имена, без расширения).
    При выделении нужного пункта списка и при нажатии на кнопку 'Распаковка' далее в команде RunWait() происходит распаковка выбранного образа с помощью 7z.exe.
     
    Теперь с помощью вашего примера возможно применить (ваша переменная $text)

    Код:
    $7zip = @ScriptDir & "\7zip_" & @OSArch & "\7z.exe"
    RunWait($7zip & " e " & @ScriptDir & "\" & $text & ".iso -aoa -o* install.wim *.swm *.esd -r")

     
    Это как раз тот пример который мне и нужен был, что бы отказаться от сохранения и считывания списка. Просто замечательно.
     
    Skif_off,  AZJIO Спасибо за помощь.
     
     
     
    Добавлено:
    AZJIO
     
    С путями проблема, первый выбранный пункт нормально, а последующие получаются с переносом строки, путь и имя файла разбиваются. Что делать теперь ?
     

    Код:
    MsgBox(64, 'Сообщение', 'Выделен пункт: ' & '"' & @ScriptDir & '\' & $text & '.iso"', 0, $hGUI)

     
    И здесь $aID[$i] = GUICtrlCreateTreeViewItem($aFileList[$i], $TreeView)  убрал кавычки, так как перед именем оставался пробел.

    Всего записей: 17 | Зарегистр. 30-12-2013 | Отправлено: 19:47 07-08-2018 | Исправлено: nibble74, 19:48 07-08-2018
    AZJIO



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

    Цитата:
    убрал кавычки, так как перед именем оставался пробел
    да я видел, надеялся ты свой код знаешь, разберёшься. И ещё не пойму зачем GUICtrlCreateTreeViewItem если получаем обычный список "List"? Думал у тебя там разделы, если их нет сделай проще, TreeView предназначен для дерева и обслуживает этот движок с учётом этого.
     

    Цитата:
    а последующие получаются с переносом строки
    потому что моя библиотека файл_операции предназначена для 3.3.8.1 (моя сборка). Под новую мне лень делать, времени нет, но в новой есть UDF для рекурсивного поиска файлов от мельда, в разделе UDF/File. Формат конечно другой но результат также массив.
     
    И судя по примеру у тебя нет русской справки, иначе ты бы увидел нормальные примеры TreeView.

    Всего записей: 4559 | Зарегистр. 03-05-2006 | Отправлено: 04:53 08-08-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