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

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

    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ivan_Strelec
    Попробовал твой вариант. Скрипт вообще не запускается. Вот что у меня получилось:

    Код:
    Global $T
     
     $T = ("[CLASS:TfSpu_main]") ; Заголовок нашего окна, в котором делать перехват F5
     HotKeySet("{F5}", "captureF5")
     
     
     Func captureF5()
     
         If Not WinActive($T, "") Then ; Вариант, когда активно окно другого приложения
             HotKeySet("{F5}") ; Передадим нажатие ему
             Send("{F5}")
             HotKeySet("{F5}", "captureF5")
             Return
         EndIf
     
    ; Здесь действия, которые мы делаем по перехвату F5
    ControlClick ("[CLASS:TfSpu_main]",  "", "[CLASSNN:TRzSpinEdit3]")
      Sleep(20)
      Send ("{TAB 3}" )
      Send ("{RIGHT 2}" )
      MouseClick("left", 648, 380, 1, 5)
      Send ("{LEFT}")
     
     EndFunc   ;==> End Funk captureF5

    Где ошибка?

    Всего записей: 166 | Зарегистр. 16-11-2006 | Отправлено: 15:27 06-03-2014
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, пожалуйста подскажите, каким образом реализовать сплеш-заставку в области трея, по механизму "поднятие снизу-вверх -> плавное затухание". В примерах с http://www.autoitscript.com/ подобного не нашел. Есть варианты, но они работают по другому механизму появления и исчезновения. Еще хотел узнать, может кто-нибудь организовывал эффект "огня" на изображении используя библиотеки с http://restools.hanzify.org/. Эффект "воды" я нашел, выглядит прикольно. Хотелось бы найти пример реализации в окне эффекта "сквозь вселенную", видел примеры AZJIO, но там просто появляются пикселы. Буду признателен, если наставите на путь истинный.

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 19:03 06-03-2014 | Исправлено: Artem_Butenko, 19:04 06-03-2014
    Ivan_Strelec



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

    Цитата:
    Скрипт вообще не запускается.

    Я думаю, что скрипт запускается, но не отрабатывает  If Not WinActive($T, "") Then,
    определяющий в чьем окне нажалась клавиша.
    Посмотри в сторону оператора OPT и его параметра WinTitleMatchMode.
    Вставь внутрь If отладочную печать и всё увидишь.

    Всего записей: 110 | Зарегистр. 06-07-2006 | Отправлено: 08:04 07-03-2014
    iceforestik

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    пытаюсь откопировать файлы в директорию C:\Users\user\Favorites\Links,но так как у каждого пользователя имя уникальное,пытался поставить директорию через переменные среды,но Autoit не катит их($izdir=C:\%ALLUSERSPROFILE%\%USERPROFILE%\Favorites\Links )
    подскажите,как сделать так,чтобы эти файлы автоматом копировались в профиль пользователя?
    пробывал через макросы
    $FavoritesDir=@FavoritesDir
    FileCopy($installDir&'\Sberbank',$FavoritesDir)
    никак не получается,подскажите как сделать по другому?

    Всего записей: 2 | Зарегистр. 27-01-2013 | Отправлено: 08:44 07-03-2014
    RVM_aka_Vasil

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

    Цитата:
    Я думаю, что скрипт запускается

    Если бы скрипт запустился, то он должен висеть в трее, верно? Но в трее его нет, нет и в процессах Windows.

    Цитата:
    Вставь внутрь If отладочную печать и всё увидишь.

    А можно подробнее про отладочную печать?
     

    Всего записей: 166 | Зарегистр. 16-11-2006 | Отправлено: 11:52 07-03-2014
    Ivan_Strelec



    Junior Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RVM_aka_Vasil
    То, что я тебе привел в качестве примера - кусочек твоей программы, который будет перехватывать клавишу и обрабатывать ее. Т.е. сам по себе он работать и не должен. В остальной части  ты должен запрограммировать вызов нужной тебе программы и организовать цикл ожидания ее завершения. И тогда приведенный мною кусок будет перехватывать нужную тебе клавишу.  
    А отладочная печать - что-то типа msgbox, помещенного, скажем, внутрь If Not WinActive($T, "") Then по которму ты поймешь, что перехват отработал.....

    Всего записей: 110 | Зарегистр. 06-07-2006 | Отправлено: 13:45 07-03-2014
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    RVM_aka_Vasil
    Цитата:
    Но что-то никак не соображу, как _HotKey_Assign в моем скрипте реализовать.
    Попробуйте сделать примерно так.
    Код:
    #include <HotKey.au3>
     
    Opt('TrayAutoPause', 0)
     
    Global Const $VK_ESCAPE = 0x1B
    Global Const $VK_F3 = 0x72
     
    Global $sTitle = '[REGEXPTITLE:.*Блокнот.*]', $iCount
     
    _HotKey_Assign($VK_F3, '_Emulate2', $HK_FLAG_DEFAULT, $sTitle);F3
    _HotKey_Assign(BitOR($CK_CONTROL, $VK_ESCAPE), '_Exit');CTRL+ESC
     
    While 1
        Sleep(100)
    WEnd
     
    Func _Emulate2()
        Local $h_Win = WinGetHandle($sTitle)
        If Not $h_Win Then Return
        $iCount += 1
        ControlSend($h_Win, '', '[CLASS:Edit; INSTANCE:1]', $iCount & ' - Test')
        ControlSend($h_Win, '', '[CLASS:Edit; INSTANCE:1]', '{TAB}')
        ControlSend($h_Win, '', '[CLASS:Edit; INSTANCE:1]', 'Test')
        ControlSend($h_Win, '', '[CLASS:Edit; INSTANCE:1]', '{ENTER}')
    EndFunc   ;==>_Emulate2
     
    Func _Exit()
        Exit
    EndFunc   ;==>_Exit

     

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 15:13 08-03-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO, а по какому принципу собирался autoit.xml для сборки Notepad++? Возникла мысль дополнить автодополнение в AkelPad, au3.api для SciTE - удобная штука, но как-то до фига
     
    Если кто-нибудь использует AkelPad и имеет свободное лишнее время, выскажитесь, пожалуйста, по моему варианту au3.coder: дефолтный файл подсветки расширен за счет UDF (курсивом) и COM-объектов (точки не выделены отдельно, как в SciTE и Notepad++, переменные объекта полностью курсивом), удалены PluginOpen/PluginClose, добавлена Opt, директивы, изменены/добавлены несколько правил. Список фунций, UDF и прочих ключевых слов соответствует v3.3.10.2 (хотя я пока на 3.3.8.1).

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 01:32 09-03-2014
    AZJIO



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

    Цитата:
    AZJIO, а по какому принципу собирался autoit.xml для сборки Notepad++? Возникла мысль дополнить автодополнение в AkelPad, au3.api для SciTE - удобная штука, но как-то до фига
    руками. Если автоматизированно, то получи список файлов, в эксел открой и справа и слева сделай колонки. Введи справа открывающие теги, слева закрывающие, растяни ячейку до конца списка. Сохрани всё это дело в txt. Ну а там добавить шапку и закрывающий тег XML просто скопируя из подобного файла.
    Я то 100 раз переделывал. Часто используемые переставлял, добавлял подварианты, в общем под себя, но оно окупается. делаешь пару часов, а потом 4 года экономишь на вводе кода. Вообще я на диске С: сделал сессию и когда мне надо подправить неудачную заготовку я легко перехожу в корень и сессией открываю autoit.xml. Поэтому по ходу набора кода он быстро притирался к потребностям.
    На версии 6.5.4 и 6.5.5 его сломали, надеюсь восстановят. А если добавят перенос строки как валидный символ, то я пропишу туда многострочные конструкции.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 05:50 09-03-2014
    RVM_aka_Vasil

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

    Цитата:
    Попробуйте сделать примерно так.
    Отлично! Ваш вариант работает как часы, благодарю.
     
    Ivan_Strelec
    С твоим примером еще разбираюсь, в любом случае спасибо за помощь!

    Всего записей: 166 | Зарегистр. 16-11-2006 | Отправлено: 09:46 09-03-2014 | Исправлено: RVM_aka_Vasil, 09:48 09-03-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    AZJIO
    Сделать не проблема, но ~3500 строк au3.api все-таки много: в связи с особеностями работы AkelPad, нужно умножить на 2 (аббревиатура для каждой) + между каждой парой строк пустая строка - уже за 10 тыс. строк. В общем, присмотрюсь повнимательнее к autoit.xml, спасибо.

    Цитата:
    если добавят перенос строки как валидный символ, то я пропишу туда многострочные конструкции.

    А как же Snippets?

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 11:42 09-03-2014
    AZJIO



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

    Цитата:
    А как же Snippets?  
    Да, это мне советовали на офсайте, я ответил, что искать заготовку в Snippets, да ещё кликать мышкой на неё дважды - это не одно и тоже что ввод одного символа и нажатие Enter, особенно зная что можно даже не смотреть, не заострять внимание, не напрягать глаза, потому что известно что вставится.
     

    Цитата:
    3500
    Не уверен, что нужно всё это вставлять, 90% которых может использовать не будешь Допустим начало у всех одинаково "_", далее комбинация "_GUI" подразумевает 1200 файлов, далее "_GUICtrlListView_" подразумевает 150 файлов. В итоге тебе практически надо напечатать всю функцию или листать огроменный список, с тем же успехом проще работать со справкой, копируя их оттуда, не печатая совсем, да и поиск по дереву значительно быстрее, чем по списку.
     
    Лично я добавил 380 нативных функций и несколько разновидностей дубликатов, например для распространённых "If...Then", MsgBox, For. И ещё распространённые макросы.
     
    Учти что каждый ввод символа провоцирует поиск по огроменному списку и может в целом тормозить работу, а польза от лишних функций нулевая.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 14:23 09-03-2014 | Исправлено: AZJIO, 16:17 09-03-2014
    Skif_off

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

    Цитата:
    Учти что каждый ввод символа провоцирует поиск по огроменному списку и может в целом тормозить работу, а польза от лишних функций нулевая.

    Вот-вот, пытаюсь найти золотую середину и не нагнуть редактор, условные операторы и циклы уже добавил.
     
    comrades, что-то я затупил:
    пытаюсь портабелизировать программу и чтобы упростить на случай компиляции пытаюсь запускать так:

    Код:
    $sRunString = IniRead(@ScriptDir & "\up.ini", "Options", "RunString", "fuck")
    RunWait($sRunString)

    up.ini:

    Код:
    [Options]
    RunString=@ScriptDir & "\folder\name.exe /key"

    И ничего не происходит, так понимаю - макрос почему-то не разворачивается в путь?

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 19:11 09-03-2014
    NIKZZZZ



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

    Цитата:
    И ничего не происходит, так понимаю - макрос почему-то не разворачивается в путь?

    А почему он должен разворачиваться?

    Код:
    $sRunString =Execute(IniRead(@ScriptDir & "\up.ini", "Options", "RunString", "fuck"))

     
     
     
    Добавлено:
    А для разворачивания:
     

    Код:
    Opt(ExpandVarStrings,1)
    $sRunString = IniRead(@ScriptDir & "\up.ini", "Options", "RunString", "fuck")

     
    up.ini:
     

    Код:
    [Options]
    RunString=@ScriptDir\folder\name.exe /key

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 19:33 09-03-2014 | Исправлено: NIKZZZZ, 19:33 09-03-2014
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ
    Понял, спасибо, остановлюсь на Execute. Opt("ExpandVarStrings", 1) почему-то не срабатывает, но это ладно, однако такой вопрос: чтобы вернуть поведение по умолчанию нужно еще раз вызвать Opt("ExpandVarStrings", 0) или функция срабатывает один раз для следующей функции?

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 21:16 09-03-2014
    NIKZZZZ



    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off
    нужно еще раз вызвать Opt("ExpandVarStrings", 0)

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 22:23 09-03-2014
    betssaf



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    чем вытащить скрипт из ехе? перевезти хочу маленькую прожку.
    P.S. при запуске ехе вылазит окошко (вот его и хочу перевезти)

    Всего записей: 2056 | Зарегистр. 28-01-2013 | Отправлено: 08:50 12-03-2014
    Citramon



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    betssaf
    https://exe2aut.com/

    Всего записей: 259 | Зарегистр. 31-01-2004 | Отправлено: 10:46 12-03-2014
    betssaf



    BANNED
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Citramon открыл но там одни цифры и ни одного слова! хотя в свойствах файла указано - AutoIT (версия 3)

    Всего записей: 2056 | Зарегистр. 28-01-2013 | Отправлено: 11:32 12-03-2014
    Citramon



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

    Всего записей: 259 | Зарегистр. 31-01-2004 | Отправлено: 11:56 12-03-2014
       

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