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

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Начиная с какого то момента DrWeb начал считать все скомпилированные скрипты опасными, и стал их удалять. есть способы как с этим бороться?

    Всего записей: 187 | Зарегистр. 23-08-2006 | Отправлено: 10:26 05-10-2015
    snoitaleR



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Kar1son
    Я обращался в службу технической поддержки с ложным срабатыванием...
    Обычно уже к следующему обновлению исправляли...

    Всего записей: 88 | Зарегистр. 23-02-2005 | Отправлено: 16:42 05-10-2015
    jFobos



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

    Всего записей: 452 | Зарегистр. 03-12-2007 | Отправлено: 14:09 08-10-2015 | Исправлено: jFobos, 14:12 08-10-2015
    Skif_off

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

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 02:50 10-10-2015 | Исправлено: Skif_off, 02:50 10-10-2015
    thelamb

    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Есть эмулятор для PS1 называется ePSXe и есть игра которую запускаешь в этом эмуляторе, но у мыши в игре нереальная скорость движения, курсором ничего не поймать. Поэтому выходишь из игры на раб стол, открываешь настройки мыши\параметры указателя и переводишь скорость указателя с середины(6-е деление) на 1-е деление,потом подтверждаешь и возвращаешься в игру. Монитор 27" и на 1-й скорости вести курсор на подтверждение и запуск, а после выхода из игры повторять в обратном порядке, долго. Нельзя ли это как то автоматизировать?

    Всего записей: 4968 | Зарегистр. 25-11-2004 | Отправлено: 12:06 12-10-2015
    snoitaleR



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    thelamb
    Топик на форуме русскоязычного сообщества AUTOIT...

    Всего записей: 88 | Зарегистр. 23-02-2005 | Отправлено: 23:17 12-10-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите, пожалуйста, думаю использовать одну переменную для массивов, а не 8, как правильнее:

    Код:
    $aArray = StringRegExp($1, ...
    ...
    $aArray = StringRegExp($1, ...

    или

    Код:
    $aArray = StringRegExp($1, ...
    ...
    $aArray = ''
    $aArray = StringRegExp($1, ...

    ? По идее разницы нет - что массив, что строка, - достаточно 1го варианта? Что-то вдруг засомневался

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 04:23 24-10-2015
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Без разницы, "обнуление" массива имеет смысл только для экономии памяти - если массив или переменная больше не нужны - обнулил.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 04:46 24-10-2015
    madmasles

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

    Цитата:

    Код:
    $aArray = StringRegExp($1, ...
    ИМХО, в данной ситуации надо обнулять $1, если флаг не 0.

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 13:18 24-10-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles
    Почему? Вообще, это просто первая пришедшая в голову функция, дающая на выходе массив, а в скрипте, с которым всплыл вопрос, функцией StringRegExp() с флагом 3 в несколько проходов вытаскиваю данные из лога, прочитанного в переменную $1.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 16:02 24-10-2015
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    Я обычно делаю переменную $aTmp или даже $tmp. Если данные живут недолго, пару строк, например извлечь регулярным выражением и преобразовать в несколько столбцов, то есть промежуточные данные. В других случаях лучше переменную нормально назвать, чтобы не путаться. И как вариант использовать функции, там переменные вообще исчезают.

    Всего записей: 4409 | Зарегистр. 03-05-2006 | Отправлено: 06:52 25-10-2015
    Skif_off

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

    Цитата:
    лучше переменную нормально назвать, чтобы не путаться

    Так и делаю, тут "$aArray = StringRegExp($1, ... " просто от балды набрано, чтобы не словами.

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 11:09 25-10-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    comrades, что-то не улавливаю, как сабж обращается с флагами функций:
    с 3.3.14.0 для FileOpen() добавлен флаг 512 для принудительного использования ANSI, чтобы не зависеть от версии, добавил такую конструкцию

    Код:
    $hFile = FileOpen($aFile[$i], 2 + 8 + 512)
    If $hFile = -1 Then
        MsgBox(4096, 'ZeroDirsFiles.au3', 'Флаг 512 не сработал')
        $hFile = FileOpen($aFile[$i], 2 + 8)
        If $hFile = -1 Then
            MsgBox(4096, 'ZeroDirsFiles.au3', 'Ошибка: Невозможно открыть файл "' & $aFile[$i] & '".')
            Exit
        EndIf
    EndIf

    однако с 3.3.8.1 почему-то не получаю сообщения "Флаг 512 не сработал".

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 05:16 27-10-2015 | Исправлено: Skif_off, 05:19 27-10-2015
    NIKZZZZ



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

    Цитата:
    однако с 3.3.8.1 почему-то не получаю сообщения "Флаг 512 не сработал".

    Это всего лишь один бит, 3.3.8.1 его просто не использует.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 06:30 27-10-2015
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off,
    ИМХО, можно примерно так сделать
    Код:
    Global $iFlag_ANSI
    If StringReplace(@AutoItVersion, '.', '') >= 33140 Then $iFlag_ANSI = 512
     
    ConsoleWrite($iFlag_ANSI & @LF)


    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 06:48 27-10-2015
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    madmasles
    А смысл? 3.3.8.1 - ansi по умолчанию, 3.3.14.0 - utf8,  Флаг 512 просто проигнорируется в 3.3.8.1 .
    К стати, после этого нововведения не корректно работает AutoIt3Wrapper.au3, он автоматически заменяет кодировку в редактируемом скрипте с ansi на utf8, пришлось его поправить.
     

    Код:
    ; Retrieve the compiler settings from the scriptfile when available
    Func Retrieve_PreProcessor_Info()
        Local $I_Rec
        Local $In_File
        Local $hTest_UTF = FileOpen($ScriptFile_In, 16)
        Local $Test_UTF = FileRead($hTest_UTF, 4)
        Local $i_Rec_Param, $i_Rec_Value, $Temp_Val
        FileClose($hTest_UTF)
    ;~ 00 00 FE FF UTF-32, big-endian
    ;~ FF FE 00 00 UTF-32, little-endian
    ;~ FE FF UTF-16, big-endian
    ;~ FF FE UTF-16, little-endian
    ;~ EF BB BF UTF-8
        Select
            Case BinaryMid($Test_UTF, 1, 4) = '0x0000FEFF' ; UTF-32 BE
                $UTFtype = '32BE'
                $SrceUnicodeFlag = 0
                $InputFileIsUTF32 = 1
            Case BinaryMid($Test_UTF, 1, 4) = '0xFFFE0000' ; UTF-32 LE
                $UTFtype = '32LE'
                $SrceUnicodeFlag = 0
                $InputFileIsUTF32 = 1
            Case BinaryMid($Test_UTF, 1, 2) = '0xFEFF' ; UTF-16 BE
                $UTFtype = '16BE'
                $SrceUnicodeFlag = 64
                $InputFileIsUTF16 = 1
            Case BinaryMid($Test_UTF, 1, 2) = '0xFFFE' ; UTF-16 LE
                $UTFtype = '16LE'
                $SrceUnicodeFlag = 32
                $InputFileIsUTF16 = 1
            Case BinaryMid($Test_UTF, 1, 3) = '0xEFBBBF' ; UTF-8
                $UTFtype = '8'
                $SrceUnicodeFlag = 128
                $InputFileIsUTF8 = 1
            Case Else
                $UTFtype = ''
    ;            $SrceUnicodeFlag = 0     ;некорректно для 3.3.14
                            $SrceUnicodeFlag = 512 ;использовать ansi по умолчанию
                $InputFileIsUTF8 = 0
                $InputFileIsUTF16 = 0
                $InputFileIsUTF32 = 0
        EndSelect
     ...  
     

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 07:22 27-10-2015 | Исправлено: NIKZZZZ, 07:23 27-10-2015
    Skif_off

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

    Цитата:
    Это всего лишь один бит, 3.3.8.1 его просто не использует.

    Просто как-то странно: лишний флаг = неправильная/не поддерживаемая сумма, ожидал ошибку, раз функции передано лишнее.
     
    madmasles
    Спасибо, добавлю на всякий случай так, пожалуй. Думал, как сравнить, но не сообразил просто убрать точки

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 22:33 27-10-2015
    NIKZZZZ



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

    Цитата:
    лишний флаг = неправильная/не поддерживаемая сумма, ожидал ошибку

    В двоичном виде 2 + 8 + 512 = 1000001010
    Красненькая единичка и есть бит вывода в аansi
    Синеньная - вывод
    Зеленая - перезаписать.
    Просто эти битики в десятичном виде плохо смотрятся, так что можно смело ставить данный флаг, проверка версии излишнее, старая версия просто не не использует этот бит.  

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 06:51 28-10-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Есть ли какие-то нюансы с использованием AutoIT  в WinPE? С помощью DMDE делал посекторную копию раздела, это долго, набросал простенький скрип, но он почему-то не сработал.
     
    Добавлено:
    Хотя, может быть, просто DMDE не дал завершить работу ОС, т.к. программа не была штатно завершена?

    Всего записей: 6473 | Зарегистр. 28-01-2008 | Отправлено: 21:57 30-10-2015
    Zloy_Gelud



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Можно как-то вытащить такой ресурс:
       
    и сохранить его как файл?
    Подопытный

    Всего записей: 3266 | Зарегистр. 30-05-2007 | Отправлено: 19:23 02-11-2015 | Исправлено: Zloy_Gelud, 19:23 02-11-2015
       

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