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

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



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите как лучше обновить SciTE4AutoIt3, до последней версии?
    Тупо заменить exe и dll?

    не актуально.

    Всего записей: 1789 | Зарегистр. 30-03-2014 | Отправлено: 16:54 17-03-2015 | Исправлено: thejustsoul, 17:00 17-03-2015
    vorvit

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Подскажите пожалуйста скрипт, кторый при простое компа создавал бы файл в папке дропбокса "свободен.txt", а при активности "занят.txt" и затирал старый файл.

    Всего записей: 1 | Зарегистр. 20-03-2015 | Отправлено: 20:56 20-03-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vorvit
    Что подразумевается под простоем? В Win сделано как-то тупо: начисто игнорируются сторонние программы, даже значительно нагружающие железо, и "активность" - тупо мышка шевелится. Тогда, наверное, можно в цикле запрашивать координаты курсора и сравнивать с предыдущими.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 22:26 20-03-2015
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    vorvit,
    Можно использовать функции _Timer_GetIdleTime() или _WinAPI_GetIdleTime().

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 01:14 21-03-2015
    PendulumE

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Опять у меня Qt-проблема. Подскажите, плз, почему 48-ая строка из http://pastebin.com/NQVLzsps срабатывает не тогда, когда нужно, преждевременно?

    Всего записей: 15 | Зарегистр. 15-07-2013 | Отправлено: 17:41 23-03-2015
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    PendulumE
    Цитата:
    срабатывает не тогда, когда нужно, преждевременно?
    ИМХО, окно активно все время. Как я понимаю, установка идет какое-то время, а после установки текст на кнопке меняется. Если да, то можно в цикле проверять текст на кнопке и ждать, пока не появится текст "Завершить".

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 20:25 23-03-2015
    PendulumE

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    madmasles, Window Info не видит никакого текста. Это же Qt.

    Всего записей: 15 | Зарегистр. 15-07-2013 | Отправлено: 20:29 23-03-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Прикольно, ControlClick() всегда возвращает единицу
     
    PendulumE
    А если запускать так:

    Код:
    $iPID = Run($hFile)

    а в конце в цикле жать кнопку, проверять существование процесса и снова жать, типа

    Код:
    While 1
        WinWaitActive($Title)
        ControlClick($Title, "", "[CLASS:QWidget; INSTANCE:3]")
        Sleep(100)
        If Not ProcessExists($iPID) Then ExitLoop
    WEnd

     
    Добавлено:
    Правильнее, наверное, так

    Код:
    While ProcessExists($iPID)
        WinWaitActive($Title)
        ControlClick($Title, "", "[CLASS:QWidget; INSTANCE:3]")
        Sleep(100)
    WEnd

     
    Добавлено:
    Почему WinWaitActive($Title), а не, например,

    Код:
    If Not WinActive($Title) Then WinActivate($Title)

    ?

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 21:31 23-03-2015 | Исправлено: Skif_off, 21:39 23-03-2015
    PendulumE

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Skif_off, я только копипасчу. WinWaitActive где-то или увидел или подсказли.
     
    Ваше условие "Если окно неактивно, то активировать его" - чем оно лучше?
     
    $iPID = Run($hFile) отлично сработала ,спасибо ва огромное!

    Всего записей: 15 | Зарегистр. 15-07-2013 | Отправлено: 20:53 24-03-2015
    Skif_off

    Gold Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    PendulumE
    Если вдруг вылезет какое-то окно и перехватит фокус, то скрипт с WinWaitActive() остановится и будет ждать активации окна инсталлера, но вам же нужно закончить и при этом установку вы автоматизируете, тогда, думаю, удобнее проверить и активировать окно при необходимости.

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



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

    Цитата:
    Прикольно, ControlClick() всегда возвращает единицу

    Лучше использовать

    Код:
    ControlCommand($Title, "", "[CLASS:QWidget; INSTANCE:3]", "Check")

    Ожидание WinWaitActive() не требуется.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 21:49 24-03-2015
    Skif_off

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

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 00:12 25-03-2015
    NIKZZZZ



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

    Цитата:
    но среди команд не нашёл ничего для нажатия на кнопку.

    Хелп Autoit неплохо сделан, зашел на ControlClick(), и, первая ссылка (Related) ведет на ControlCommand(), а дальше уже читать надо.

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 00:53 25-03-2015 | Исправлено: NIKZZZZ, 04:58 25-03-2015
    Skif_off

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

    Цитата:
    а дальше уже читать надо

    Именно это и сделал Для команды Check написано только:

    Цитата:
    Устанавливает галочку в Checkbox или радиокнопку

    и всё.

    Всего записей: 6489 | Зарегистр. 28-01-2008 | Отправлено: 09:14 25-03-2015
    PendulumE

    Newbie
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    NIKZZZZ, не пойму, честно сказать, что нужно заменить в моем скрипте.
    Можете написать итоговую последнюю операцию (вы ведь про нее говорите, так?)?

    Всего записей: 15 | Зарегистр. 15-07-2013 | Отправлено: 19:28 25-03-2015
    Detsle



    Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребят, суть вопроса следующая.
     
    1) Нужно скрыть процесс с диспетчера задач Windows 8 x64.
    2) Нужно чтобы и сам скрипт был невиден.
     
    Просьба помочь в реализации

    Всего записей: 283 | Зарегистр. 15-10-2007 | Отправлено: 16:18 26-03-2015 | Исправлено: Detsle, 16:20 26-03-2015
    AZJIO



    Silver Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Обновил CaptureText, добавил настройки и при захвате окна показывает, какой EXE его создал. Захотел добавить эту фичу из-за того, что какой-то процесс стал восстанавливать установку своей программы (после принудительного её удаления с помощью Unlocker), но в диспетчере задач нет подозрительных процессов. Пришлось писать временный скрипт, который в дальнейшем вмонтировать в прогу. Кстати, процесс отказался explorer.exe, а прибить удалось запретом на доступ в папку установки и удаление всех записей в реестре связанных с прогой.

    Всего записей: 4413 | Зарегистр. 03-05-2006 | Отправлено: 23:25 28-03-2015
    NIKZZZZ



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

    Цитата:
    Нужно скрыть процесс с диспетчера задач  

    Так запускай ее как сервис, имя соответвующее дай.
    Троянчик?

    Всего записей: 5365 | Зарегистр. 08-02-2006 | Отправлено: 00:23 29-03-2015
    Artem_Butenko



    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Ребята, возник такой вопрос, как наиболее корректно переименовать каталоги и файлы по маске, а именно, "отсечь" в конце "_tmp", например:
    Folder1_tmp -> Folder1
    Folder2_tmp -> Folder2
    File1.dat_tmp -> File1.dat
    File2.dat_tmp -> File2.dat
    Находил достаточно вариантов скрипта для работы с именами файлов и каталогов, но они предназначены совсем для иных целей. Обязательное условие, - имена каталогов и файлов для переименования должны считываться из "*.ini-файла", например:
     
    [Folders and Files List]
    1=Folder1_tmp
    2=Folder2_tmp
    3=File1.dat_tmp
    4=File2.dat_tmp
     
    Буду очень признателен Вашей помощи!

    Всего записей: 711 | Зарегистр. 19-02-2008 | Отправлено: 02:53 30-03-2015
    madmasles

    Advanced Member
    Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору
    Artem_Butenko,
    Используйте следующие функции:
    Код:
    IniReadSection()
    FileExists()
    _WinAPI_PathIsDirectory();WinAPIEx.au3
    DirMove()
    FileMove()

    Новые имена можно получить, например, так:
    Код:
    Local $sFile = @ScriptDir & '\File1.dat_tmp', $sDir = @ScriptDir & '\Folder1_tmp', $sDel = '_tmp'
     
    ConsoleWrite($sFile & '  --->  ' & StringRegExpReplace($sFile, '\' & $sDel & '$', '') & @LF)
    ConsoleWrite($sDir & '  --->  ' & StringRegExpReplace($sDir, '\' & $sDel & '$', '') & @LF)

    Всего записей: 1277 | Зарегистр. 25-09-2008 | Отправлено: 07:25 30-03-2015 | Исправлено: madmasles, 09:06 30-03-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