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

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

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

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

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

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
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Demon
    Наверное, можно попробовать отслеживать загруженность CPU браузером и плеером (учитывая, что на современную аидеокарту можно переложить немало рассчётов, наверное, нужно использовать порог в 5-10%). И/или проверять нагруженность видеокарты.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 02:38 14-10-2021
    Fom64

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Demon
    Если Youtube на активной вкладке, то в чем проблемы?
    Opt("WinTitleMatchMode", -2)
    If WinExists("[TITLE:youtube]") Then
        MsgBox(4096, "", "Окно существует")
    Else
        MsgBox(4096, "", "Окно не существует")
    EndIf

    Всего записей: 262 | Зарегистр. 26-11-2010 | Отправлено: 09:07 14-10-2021
    Demon

    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    На современном процессоре слишком маленький порог получается. Такую нагрузку может дать и торрент. Нагрузка на видео... Как отличить это видео воспроизводится или онлайн игрушка на заднем фоне.
     
    Добавлено:
    Fom64
    Согласен, youtube можно отловить, хотя бы по url, но это не решает задачу в целом.

    Всего записей: 583 | Зарегистр. 03-10-2001 | Отправлено: 09:11 14-10-2021
    Skif_off

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

    Цитата:
    Такую нагрузку может дать и торрент.

    Ну и пусть даёт, вы же за браузером и плеером следите. Насчёт порога - можно понаблюдать.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 14:09 14-10-2021
    Habib2302



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Как исключить @AutoItExe из поиска файлов FileFindFirstFile и FileFindNextFile

    Всего записей: 529 | Зарегистр. 09-05-2012 | Отправлено: 16:53 23-10-2021
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Habib2302
    FileFindNextFile возвращает имя файла, можно до начала цикла вытащить из @AutoItExe имя

    Код:
    StringRegExpReplace(@AutoItExe, '^.*\\', '')

    и сравнивать в цикле поиска.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 20:01 23-10-2021
    Habib2302



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Я поставил перед циклом и все равно

    Код:
    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=y
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    $hSearch = FileFindFirstFile('*.*')
    StringRegExpReplace(@AutoItExe, '^.*\\', '')
    If $hSearch = -1 Then
        MsgBox(4096, "Ошибка", "Ни один из файлов не найден")
        Exit
    EndIf
    While 1
        $sFile = FileFindNextFile($hSearch) ; возвращает имя следующего файла, начиная от первого до последнего
        If @error Then
            ExitLoop
        EndIf
        ConsoleWrite($sFile & @CRLF) ; File.exe
        $sDir = StringLeft($sFile, StringInStr($sFile, ".", 0, -1) - 1)
        ConsoleWrite($sDir & @CRLF) ; File
        ShellExecuteWait(@ScriptDir & '\bin\ap28.exe','-res=' & @ScriptDir & '\' & $sFile & ',0 -icon=' & @ScriptDir & '\' & $sDir & '.ico -formats=16,24,32,48')
    WEnd
    ; Закрывает дескриптор поиска
    FileClose($hSearch)

    Всего записей: 529 | Зарегистр. 09-05-2012 | Отправлено: 20:32 23-10-2021 | Исправлено: Habib2302, 20:32 23-10-2021
    Skif_off

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

    Код:
    $hSearch = FileFindFirstFile('*.*')
    If $hSearch = -1 Then
        MsgBox(4096, "Ошибка", "Ни один из файлов не найден")
        Exit
    EndIf
    $sAu3Exe = StringRegExpReplace(@AutoItExe, '^.*\\', '')
    While 1
        $sFile = FileFindNextFile($hSearch) ; возвращает имя следующего файла, начиная от первого до последнего
        If @error Then
            ExitLoop
        EndIf
        If $sFile = $sAu3Exe Then
            ContinueLoop
        EndIf
        ConsoleWrite($sFile & @CRLF) ; File.exe
        $sDir = StringLeft($sFile, StringInStr($sFile, ".", 0, -1) - 1)
        ConsoleWrite($sDir & @CRLF) ; File
        ShellExecuteWait(@ScriptDir & '\bin\ap28.exe','-res=' & @ScriptDir & '\' & $sFile & ',0 -icon=' & @ScriptDir & '\' & $sDir & '.ico -formats=16,24,32,48')
    WEnd
    ; Закрывает дескриптор поиска
    FileClose($hSearch)

     
    Habib2302, спасибо, давненько не писал Исправил пост на всякий.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 21:13 23-10-2021 | Исправлено: Skif_off, 17:53 24-10-2021
    Habib2302



    Full Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Спасибо. Только есть одна ошибка. ContinueCase заменить ContinueLoop

    Всего записей: 529 | Зарегистр. 09-05-2012 | Отправлено: 13:48 24-10-2021
    HORiSi

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    К вопросу автообновления версии любого приложения
     
    ViSiToR,
    Цитата:
    При каждом обновлении, меняем версию после «Update Version=» на более новую.

     
    В смысле сами руками меняем?
     
    Кто–нибудь переделывал указанный выше скрип, т.о. чтоб скрип читал ссылку из ini (на случай её устаревания)

    Всего записей: 162 | Зарегистр. 24-05-2006 | Отправлено: 12:32 24-11-2021 | Исправлено: HORiSi, 12:33 24-11-2021
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Файла Q:\1 нет.

    Код:
    FileWrite ( "Q:\1" , "привет" )

    Пишет кракозябры.
     

    Код:
    $tyt=FileGetEncoding( "Q:\1")
    Msgbox(4096, "", $tyt)

     
    показывает кодировка 256, UTF-8. Как избежать?

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 11:41 30-11-2021 | Исправлено: king_stiven, 11:46 30-11-2021
    iglezz

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    king_stiven
    В справке так и написано, что по умолчанию FileWrite пишет в UTF-8 без BOM.
    Кодировку можно выбрать, если файл открыть с помощью FileOpen (и потом не забыть закрыть его -- FileClose).

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 13:09 30-11-2021
    Andrey_A_A



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

    Цитата:
    кодировка 256

    king_stiven, даже на последних бета версиях Autoit функция FileGetEncoding() может работать "криво"... может выдавать значения более 1000, пару раз видел 2048, 16384, для себя пользуюсь "заплаткой", но она тоже иногда не помогает...
     

    Код:
    #include <Encoding.au3>
     
    $sFile='C:\test.xxx'
    $iCode=__FileGetEncoding($sFile)
    MsgBox(4096,'Переменная $iCode','$iCode =>'&$iCode&'<=')
     
    Func _FileGetEncoding($sFile,$n=-1)
      $i=FileGetEncoding($sFile,2)
      Return($i=256 Or $i>999)?(_Encoding_GetFileEncoding($sFile,$n)? $i :520): $i
    EndFunc
     
    Func __FileGetEncoding($sFile,$n=-1)
      $aRet=StringRegExp('|32|2|1024|2|64|3|2048|3|128|4|256|4|16384|4|','\|'&_FileGetEncoding($sFile,$n)&'\|([^\|]+)\|',3)
      Return @error ?1: Number($aRet[0])
    EndFunc


    Всего записей: 1390 | Зарегистр. 15-08-2011 | Отправлено: 13:18 30-11-2021 | Исправлено: Andrey_A_A, 13:25 30-11-2021
    king_stiven

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    iglezz
     
    FileWrite
     
    Записывает данные в конец файла.
     

    Цитата:
    При записи текста AutoIt'ом по умолчанию используется ANSI

    Всего записей: 2229 | Зарегистр. 17-07-2006 | Отправлено: 23:18 30-11-2021
    iglezz

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

    Цитата:
    пару раз видел 2048, 16384

    1024 и 2048 вполне допустимые значения (UTF-16-LE/BE без BOM), если конечно FileGetEncoding() угадал кодировку
     
    king_stiven

    Цитата:
    FileWrite
     
    Записывает данные в конец файла.  

    Ну да, это логично.
    А в чём вопрос?
     

    Цитата:
    При записи текста AutoIt'ом по умолчанию используется ANSI

    С 2015 года (v3.3.14.0) по умолчанию используется UTF-8 без BOM.
    Если это цитата из какого-то справочника, то его полезность уже местами не очень. Как минимум рекомендую сверяться с оригинальной справкой.

    Всего записей: 1521 | Зарегистр. 18-02-2003 | Отправлено: 00:47 01-12-2021 | Исправлено: iglezz, 00:48 01-12-2021
    xrun1



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    v3.3.14.5
    When writing text AutoIt will write using UTF8 (without BOM) by default. To write in another mode the file must be opened with FileOpen() and the relevant flags.

    Всего записей: 721 | Зарегистр. 26-12-2009 | Отправлено: 03:11 01-12-2021
    zzzUUUzzz

    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не получается найти конкретное решение, как последовательно переключаться между окнами одного приложения (например, Chrome) с помощью команды WinActivate. Кто-нибудь знает ответ или хотя бы то, в каком направлении копать?
    Уже неактуально.

    Всего записей: 216 | Зарегистр. 12-12-2007 | Отправлено: 22:20 05-12-2021 | Исправлено: zzzUUUzzz, 05:00 06-12-2021
    Naytaco

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Не знаю где спросить, спршу тут. Подскажите дилетанту, кто знает.
    Утилита от AZJIO - ChkDskGui (https://usbtor.ru/viewtopic.php?t=1478) и такая же утилита от Simplix - ChkDskGui (https://blog.simplix.info/chkdsk-gui/) это, в принципе графические оболочки для встроенной системной утилиты проверки дисков?
    В чем между ними разница (если не брать, конечно, сам внешний вид... у AZJIO графически показаны все диски)? Какая из них лучше (если так можно сказать) и надежнее? Или без разницы, все дело в наглядности и внешнем виде?

    Всего записей: 3505 | Зарегистр. 10-07-2020 | Отправлено: 13:57 18-12-2021 | Исправлено: Naytaco, 14:00 18-12-2021
    xrun1



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Naytaco
    Обе - графическая оболочка для консольной системной утилиты chkdsk.exe. Что там внутри одному Богу только авторам известно.
    Можно запустить Проводник. ПКМ на диске --> Свойства --> Сервис и там проверить на наличие ошибок.

    Всего записей: 721 | Зарегистр. 26-12-2009 | Отправлено: 18:26 18-12-2021
    AZJIO



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

    Цитата:
    Или без разницы, все дело в наглядности и внешнем виде?

    В комплекте даже батник есть, то есть даже не нужна утилита, а зная какие ключи используются, то можно и ручками вписать ключи \F \X и указать диск. Но многие любят чтобы было красиво (пока не говорим о совместимости). Утилита показывает какие ключи включены, то есть видя их можно запомнить, в строке состояния пишет ком строку. Простота выбора, можно выбрать сразу несколько дисков, а не по одному. Можно добавить проверку в реестр, чтобы она прошла на старте системы, так как винда не позволит проверить диск на котором она находится. Больше информации о диске, что позволяет более уверенно идентифицировать что проверяется тот диск который надо. По отсутствию информации можно понять что ОС не может получить инфу о диске. автоматическое обновления при подключении/отключении устройства, в том числе дисков с несколькими логическими дисками. Использование стилей для вывода информации. Итог, можно не иметь ни одной, можно иметь батник на пару кб, можно упрощённый GUI (40кб), а можно не упрощённый GUI (113 кб).
    И ещё есть AutoIt3-версия утилиты, что ближе к теме AutoIt3, но размер к сожалению в разы больше - 600 кб.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 08:59 28-12-2021 | Исправлено: AZJIO, 09:21 28-12-2021
    Открыть новую тему     Написать ответ в эту тему

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

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


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

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

    BitCoin: 1NGG1chHtUvrtEqjeerQCKDMUi6S6CG4iC

    Рейтинг.ru