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

НовостиФайловые архивы
ПоискАктивные темыТоп лист
ПравилаКто в on-line?
Вход Забыли пароль? Первый раз на этом сайте? Регистрация
Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 4)

Модерирует : gyra, Maz

 Версия для печати • ПодписатьсяДобавить в закладки
Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

Открыть новую тему     Написать ответ в эту тему

gyra

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

 
Описание:

Цитата:
AutoIt v3 - это язык для написания сценариев, напоминающий BASIC. Основным его назначением является автоматизация работ с Windows GUI (графическим интерфейсом пользователя MS Windows). Для выполнения этой сложной задачи предоставляется комбинация испытанных методов, включающих в себя эмуляцию нажатий комбинаций клавиш клавиатуры, перемещения указателя мыши, управление окнами и их визуальными элементами. Как показывает практика, эти "приводные ремни" весьма эффективны для получения работающих решений в ситуациях, когда другие стандартные средства (например, VBScript и SendKeys) оказываются бессильны.
Умеет он очень и очень многое! Бесплатный.

 
  • Справки
  • Инструменты
  • Ресурсы, посвящённые AutoIt
  • Полезные советы новичкам и не только
  • Готовые решения
  • Версии для устаревших Windows
  • Скрипт раскраски кода AutoIt для публикации в форумах
     


     
    За шапкой следит ViSiToR / AZJIO  

  • Всего записей: 7932 | Зарегистр. 18-02-2006 | Отправлено: 10:49 23-01-2020 | Исправлено: Egor2020, 14:02 22-03-2021
    xrun1



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Wu Tang
    Если правильно понял, жёлтый это в ProgressConstants.au3
    Global Const $PBM_SETSTATE = 0x0410 ; Vista

    Всего записей: 1003 | Зарегистр. 26-12-2009 | Отправлено: 08:08 18-06-2025
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Добрый день!
    Есть bat файл тихой установки программы

    Код:
    @echo off
    FOR %%i IN ("StartBack*.exe") DO Set FileName="%%i"
    %FileName% /VStartBack_AIOERYSILENT /TASKS="restartexplorer"
    exit

    Не поможете его перевести в AutoIT и добавить в мой скрипт, вместо выделенной красным строки, чтобы при выходе новой версии не переименовывать файл...

    Код:
    #NoTrayIcon
    #RequireAdmin
     
    #pragma compile (Out, StartBack_Win10_Silent.exe)
    #pragma compile(Icon, ICON10.ico)
    #pragma compile(FileDescription, Тихая установка для StartBack (StartIsBack для Windows 10) AIO (репак elchupacabra с https://www.lrepacks.net))
    #pragma compile (x64, false)  ; true - да, false - нет
    #pragma compile(FileVersion, 3.10.0.0)
    #pragma compile (CompanyName, '(сборка 'Электрик')')
    #pragma compile(OriginalFilename, StartBack_Win10_Silent.exe)
     
    TOOLTIP('Установка меню "Пуск" для Windows 10...' , @DESKTOPWIDTH / 2 , (@DESKTOPHEIGHT / 2) , "" , "" , 2)
     
    RunWait(@ScriptDir&"\StartBack_AIO.exe /VERYSILENT", '', @SW_HIDE)
    RunWait(@ComSpec & ' /C regedit /s "' & @ScriptDir & '\settings10.reg"', '', @SW_HIDE)
     
    ; Ожидание максимум 5 секунд до момента, когда оно станет существующим
    $hWnd = WinWait("Добро пожаловать!","Настроить StartIsBack", 5) ; без таймаута (5) ожидание бесконечно
    ControlClick("Добро пожаловать!","Настроить StartIsBack","TButton2")
    If Not $hWnd Then
        Exit
    EndIf
     
    Exit

    Всего записей: 121 | Зарегистр. 05-09-2010 | Отправлено: 08:52 21-06-2025
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    Батник ищет и вы поищите, что-то типа

    Код:
    $hSearch = FileFindFirstFile(@ScriptDir & "\StartBack*.exe")
    If $hSearch = -1 Then
        MsgBox(48 + 4096, "Ошибка", "Неизвестная ошибка.")
        Exit
    EndIf
    $sFile = FileFindNextFile($hSearch)
    If @error Then
        MsgBox(48 + 4096, "Ошибка", "Установщик StartIsBack не найден.")
        FileClose($hSearch)
        Exit
    EndIf
    FileClose($hSearch)
    RunWait('"' & @ScriptDir & '\' & $sFile & '" /VERYSILENT", '', @SW_HIDE)

    Если оставите имя скомпилированного скрипта "StartBack_Win10_Silent.exe", то чтобы с маской "StartBack*.exe" и его не захватило, то надо что-то мутить с циклом, типа как в примере FileFindFirstFile, а в начале цикла его исключить:

    Код:
    If $sFile = @AutoItExe Then ContinueLoop

    Всего записей: 6707 | Зарегистр. 28-01-2008 | Отправлено: 15:36 22-06-2025
    AlexM2222



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off, вот эта строка выдаёт ошибку(если честно я в кавычках уже запутался...)
     

    Цитата:
    RunWait('"' & @ScriptDir & '\' & $sFile & '" /VERYSILENT", '', @SW_HIDE)

     
     

    Всего записей: 121 | Зарегистр. 05-09-2010 | Отправлено: 16:59 22-06-2025 | Исправлено: AlexM2222, 17:04 22-06-2025
    Wu Tang



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xrun1
    нашел здесь обсуждение цветности - https://www.autoitscript.com/forum/topic/138023-progress-bar-with-changing-color/ но походу ничего не добились, человек хотел красный/желтый/зеленый...

    Всего записей: 4228 | Зарегистр. 15-10-2007 | Отправлено: 17:20 22-06-2025
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AlexM2222
    После VERYSILENT стоит двойная кавычка, исправьте на одинарную.
    (Кавычки добавил, т.к. имена нагугленных файлов с пробелами в имени.)

    Всего записей: 6707 | Зарегистр. 28-01-2008 | Отправлено: 18:12 22-06-2025
    Fom64

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

    Цитата:
    (если честно я в кавычках уже запутался...)

    Редактор поставь нормальный, с подсветкой

    Код:
    RunWait(@ScriptDir & '\' & $sFile & " /VERYSILENT", "", @SW_HIDE)


    Всего записей: 269 | Зарегистр. 26-11-2010 | Отправлено: 18:17 22-06-2025
    xrun1



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

    Код:
    #include <File.au3>
    Local $aFileList = _FileListToArray(@ScriptDir, "StartBack*.exe", 1, True)
    If @error = 4 Then
        MsgBox(16 + 4096, "Ошибка", "Файл не найден.")
        Exit
    EndIf
    RunWait('"' & $aFileList[1] & '"' & ' /VERYSILENT', '', @SW_HIDE)

     
    Добавлено:
    Wu Tang
    У меня на Win10 получается 3 цвета:
    _SendMessage(GUICtrlGetHandle($Progress1), $PBM_SETSTATE, 1) ; green
    _SendMessage(GUICtrlGetHandle($Progress1), $PBM_SETSTATE, 2) ; red
    _SendMessage(GUICtrlGetHandle($Progress1), $PBM_SETSTATE, 3) ; yellow
    Жёлтый не совсем жёлтый. :)

    Всего записей: 1003 | Зарегистр. 26-12-2009 | Отправлено: 01:27 23-06-2025
    Wu Tang



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xrun1
    Отлично!
    А синего или его оттенков в 10-ке нет?

    Всего записей: 4228 | Зарегистр. 15-10-2007 | Отправлено: 03:44 23-06-2025
    xrun1



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Wu Tang
    Метод "тыка" показывает, что нет. Тоько зелёный.

    Всего записей: 1003 | Зарегистр. 26-12-2009 | Отправлено: 04:22 23-06-2025
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    xrun1
    Смысл тянуть UDF (точнее, несколько), если внутри те же самые FileFindFirstFile, FileFindNextFile, FileClose?
    Зная основы, при необходимости можно ту же рекурсию организовать, чего не умеет _FileListToArray.
     
    Ваш вариант также может споткнуться, если AlexM2222 оставит компиляцию в StartBack_Win10_Silent.exe.
    Ну и запуск без указания полного имени может не сработать: мы не знаем, как AlexM2222 будет запускать скрипт, а рабочий каталог и @ScriptDir совпадать не обязаны.
     
    Добавлено:
    Насчёт последнего могу ошибаться, зависит от версии AutoIt: вижу, добавили $bReturnPath, но в ченджлоге не нашёл, когда (3.3.8.1 предпочитаю).

    Всего записей: 6707 | Зарегистр. 28-01-2008 | Отправлено: 19:50 23-06-2025
    AlexM2222



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

    Цитата:
    Ваш вариант также может споткнуться, если AlexM2222 оставит компиляцию в StartBack_Win10_Silent.exe.
    Ну и запуск без указания полного имени может не сработать: мы не знаем, как AlexM2222 будет запускать скрипт, а рабочий каталог и @ScriptDir совпадать не обязаны.

    Решил пойти другим путем и переименовал в StarIstBack_Win10_Silent.exe
    Вот мой окончательный скрипт

    Код:
    #NoTrayIcon
    #RequireAdmin
     
    #pragma compile (Out, StartIsBack_Win10_Silent.exe)
    #pragma compile(Icon, ICON10.ico)
    #pragma compile(FileDescription, Тихая установка StartIsBack для Windows 10 (репак elchupacabra с https://www.lrepacks.net))
    #pragma compile (x64, false)  ; true - да, false - нет
    #pragma compile(FileVersion, 3.10.1.0)
    #pragma compile (CompanyName, '(сборка 'Электрик')')
    #pragma compile(OriginalFilename, StartIsBack_Win10_Silent.exe)
     
    TOOLTIP('Установка меню "Пуск" для Windows 10...' , @DESKTOPWIDTH / 2 , (@DESKTOPHEIGHT / 2) , "" , "" , 2)
     
    ;RunWait(@ScriptDir & "\StartBack_AIO.exe /VERYSILENT /TASKS=""restartexplorer""", '', @SW_HIDE)
     
    $hSearch = FileFindFirstFile(@ScriptDir & "\StartBack*.exe")
    If $hSearch = -1 Then
        MsgBox(48 + 4096, "Ошибка", "Установщик StartIsBack не найден!")
        Exit
    EndIf
    $sFile = FileFindNextFile($hSearch)
    If @error Then
        MsgBox(48 + 4096, "Ошибка", "Неизвестная ошибка!")
        FileClose($hSearch)
        Exit
    EndIf
    FileClose($hSearch)
    RunWait(@ScriptDir & '\' & $sFile & " /VERYSILENT /TASKS=""restartexplorer""", "", @SW_HIDE)
    RunWait(@ComSpec & ' /C regedit /s "' & @ScriptDir & '\settings10.reg"', '', @SW_HIDE)
     
    ; Ожидание максимум 5 секунд до момента, когда оно станет существующим
    $hWnd = WinWait("Добро пожаловать!","Настроить StartIsBack", 5) ; без таймаута (5) ожидание бесконечно
    ControlClick("Добро пожаловать!","Настроить StartIsBack","TButton2")
    If Not $hWnd Then
        Exit
    EndIf
     
    Exit

    Запускаю компилированный файл через MInstall(установщик софта)


    Всего записей: 121 | Зарегистр. 05-09-2010 | Отправлено: 20:22 23-06-2025
    xrun1



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Я же не против кода, который Вы предложили.)) Сам использую FileFindFirstFile, FileFindNextFile. Просто в данном конкретном случае мне показалось более логичным использовать велосипед, чем его изобретать. Тем более, что в Help для _FileListToArray так и сказано

    Цитата:
    similar to using Dir with the /B Switch

    Что касается смысла тянуть UDF. Это не более, чем текст. Вот два файла для теста.
    Test_1 без UDF - просто добавил в код функцию _FileListToArray и переменную.
    Test_2 с UDF <File.au3>.
    Компилируем (F7) и смотрим размер.
    Например, питон, чтобы сделать exe-шник из файла на 300 строк встроит в него кучу своих библиотек. Размер для x86 будет под 4 мегабайта. Это просто для примера.
    AutoIt3 использует системные ресурсы, поэтому наличие и количество UDF не принципиально. Это моё мнение.

    Всего записей: 1003 | Зарегистр. 26-12-2009 | Отправлено: 00:28 24-06-2025
    58623882

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    https://autoit-script.ru/ -только у меня лежит??
    уп-сс заработало

    Всего записей: 53 | Зарегистр. 31-12-2008 | Отправлено: 10:57 16-07-2025 | Исправлено: 58623882, 09:39 17-07-2025
    Открыть новую тему     Написать ответ в эту тему

    Страницы: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18

    Компьютерный форум Ru.Board » Компьютеры » Программы » AutoIT (Часть 4)


    Реклама на форуме Ru.Board.

    Powered by Ikonboard "v2.1.7b" © 2000 Ikonboard.com
    Modified by Ru.B0ard
    © Ru.B0ard 2000-2025

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru