← All posts tagged Auto-It!

Dr-Yukon
Auto-It! начну издалека. давным-давно мне пришлось столкнуться с проблемой разбиения файлов на куски, равные далеко не в том смысле, который вкладывается в это понятие со времён файл-менеджеров под DOS. например, если нужно скачать файлы через WGET в 40 потоков, а файл-список со ссылками всего один — не будешь же постоянно сидеть и перетаскивать порванные строки между "томами", а мануал по утилите возможностей чтения от строки до строки не показывает. таким образом, сделанный сегодня скриптик полезнее, чем кажется. я не стал заморачиваться с подсчётом пауз между действиями и просто расставил их везде, поэтому возможностей для оптимизации остаётся предостаточно. и на этот раз построчных комментариев не будет. как обычно, для поиска источника требуется Total Commander, а для запуска — Notepad++

C:\9 row splitter.au3

Opt("WinTitleMatchMode", 2)
$all = InputBox("Источник", "Сколько строк в источнике?", "10000")
$row = InputBox("Строки", "Сколько строк в каждой части?", "250")
$parts = $all / $row
$row = $row + 1
WinActivate("Total Commander")
Send("{TAB}")
Send("{ENTER}")
WinWaitActive("Notepad++")
Sleep(100)
$count = 1
Do
Send("^{п}")
Sleep(100)
Send($row)
Sleep(100)
Send("{ENTER}")
Sleep(100)
Send("+^{END}")
Sleep(100)
Send("+{DEL}")
Sleep(100)
Send("{BS}")
Sleep(100)
Send("^!{ы}")
Sleep(300)
if Send("file" & $count)
Sleep(100)
Send("{ENTER}")
Sleep(100)
Send("^{ф}")
Sleep(100)
Send("+{INS}")
Sleep(100)
$count = $count + 1
Until $count = $parts
Send("^!{ы}")
Sleep(300)
Send("file" & $parts)
Sleep(100)
Send("{ENTER}")
Beep ()
Dr-Yukon
Auto-It! очередной скрипт, делающий скриншоты через Media Player Classic по фотогалерее внутри статичных видеокусочков блюреевского образа одного диска. из новшеств — бип на каждые 100 циклов, есть мысль добавить внутренний счётчик, умножающий бипы

C:\6 m2ts converter.au3

Opt("WinTitleMatchMode", 2); смена опции скриптера с поиска в титуле окон по началу строки (дефолтное) на поиск по любому куску
WinActivate("Total Commander"); активация Тотала
Send("{TAB}"); переход в другую панель
Send("{ENTER}"); запуск видеофайла
WinWaitActive("MPC-HC"); ожидание запуска плеера
$count = 1; установка счётчика для цикла
Do; начало цикла
sleep(2500); входная пауза/первая часть паузы цикла
Send("!{ш}"); скриншот (Alt+I)
sleep(300); пауза для открытия окошка (путь сохранения скринов уже настроен)
Send("{ENTER}"); сохранение скрина
sleep(300); пауза для закрытия окошка
Send("{PGDN}"); листнуть на следующий файл средствами плеера (через Тотал слишком долго)
sleep(3500); вторая часть паузы цикла (итого было 6 секунд на открытие каждого файла)
if Mod($count, 100) = 0 then Beep (); бип на каждые 100 циклов
$count = $count + 1; добавить счётчик
Until $count > 447; указать сколько раз повторить
Beep (); конечный бип
Dr-Yukon
Auto-It! что-то нравится мне комбайны собирать. надо было всего-лишь коллекцию любительских артов в pdf-файле порвать на картинки, а в итоге задействовано программ: веб-сервер + php-скрипт + браузер + Тотал Коммандер + ТК-плагин Clipboard + Фоксит Фантом + АвтоИт + его скрипт
Dr-Yukon
Auto-It! Скрипт для сборки двухстолбцовых (например, помесячных) данных в одну колонну (из двух столбцов опять же)

C:\3 combine excel pair columns.au3

Opt("WinTitleMatchMode", 2); смена опции скриптера с поиска в титуле окон по началу строки (дефолтное) на поиск по любому куску
$count = 1; установка счётчика для цикла
WinWaitActive("Excel"); ; дождаться активации Экселя
Do; начало цикла, курсор должен стоять в ячейке А2 (первая строка занята заголовками) и необходимо, чтобы между столбцами А+В и теми, которые надо в них переносить, был хотя бы один пустой столбец
sleep(100); на всякий случай расставлены небольшие паузы
Send("^{RIGHT 2}"); переход к первому столбцу после пустоты (пусть будет D2)
sleep(100)
Send("+{RIGHT}"); выделение обеих первых ячеек (D2 и E2)
sleep(100)
Send("+^{DOWN}"); выделение вниз до конца (D2:Eсколькоугодно)
sleep(100)
Send("+{DEL}"); вырезание в буфер
sleep(100)
Send("^{LEFT 2}"); возврат в А2
sleep(100)
Send("^{DOWN}"); вниз до конца данных
sleep(100)
Send("{DOWN}"); в первую пустую ячейку после данных
sleep(100)
Send("+{INS}"); вставка из буфера
sleep(100)
Send("^{UP}"); возврат наверх, в А1
sleep(100)
Send("{DOWN}"); немного ниже, в А2
$count = $count + 1; добавить счётчик
Until $count > 15; указать сколько раз повторить

Скрипт нетрудно модифицировать при отсутствии первой строки-заголовка и при необходимости копировать более 2 столбцов
Dr-Yukon
Auto-It! Лень побеждаэ. Ещё один скриптик Auto-It! для Тотал Коммандера, используется сразу после удаления клонов для поиска клонов по соседней папке

C:\2 nextsearcher.au3 (в одной панели диск С, в другой — проверяемые папки):

WinWaitActive("Total Commander"); дождаться активации Тотала
Send("{UP}"); поставить курсор на скрипт "1 clonmarker.au3" (чтобы не листать их туда-сюда)
Send("{TAB}"); перейти в соседнюю панель
Send("!{LEFT}"); назад по истории (Тотал не помнит навигацию в данном случае, поэтому такой костыль)
Send("!{RIGHT}"); вернуться в обысканную папку
sleep(1000); заснуть на секунду, чтобы Тотал успел прочитать кучу файлов в папке
Send("{ENTER}"); выйти из папки
Send("{DOWN}"); на соседнюю папку
Send("{ENTER}"); зайти в неё
sleep(2000); снова пауза для чтения в новой папке (хотя тут это необязательно)
Send("!{F7}"); Alt+F7 для поиска
Send("^{TAB}"); перейти на таб "Дополнительно"
Send("{б}"); отметить "поиск дубликатов"
Send("{м}"); убрать "по имени"
Send("{д}"); отметить "по содержимому"
Send("{ENTER}"); запуск поиска

Остаётся только запомнить число файлов, вывести файлы на панель (тайминг тут делать бесполезно, поиск плавает по времени) и вбить число в clonmarker. Повторю его по-новому

C:\1 clonmarker.au3 (нумерация введена для надёжного перехода курсора между скриптами):

$value = InputBox("Сколько?", "Число клонов", "100"); запрос количества клонов, по умолчанию 100
$count = 1; установка счётчика для цикла
WinWaitActive("Total Commander"); дождаться активации Тотала
Send("{DOWN}"); поставить курсор на скрипт "2 nextsearcher.au3"
Send("{TAB}"); перейти в соседнюю панель
Do; начало цикла
Send("{SPACE}"); выделение
Send("{DOWN}"); переход
$count = $count + 1; добавление счётчика
Until $count > Round ($value/2, 0); повторить цикл половину раз от количества клонов, с округлением
Dr-Yukon
Auto-It! Ещё один скрипт, на этот раз для выделения каждой второй строчки, например, в поиске клонов в Тотал Коммандере

$value = InputBox("Сколько?", "Число клонов", "100")
$count = 1
Do
Send("{SPACE}")
Sleep(10)
Send("{DOWN}")
$count = $count + 1
Until $count > Round ($value/2, 0)
Dr-Yukon
Auto-It! Торрент на раздаче периодически падает, разумеется, не ночевать же перед ним сутками
примитивный скрипт на автоите, может, кому пригодится

C:\Auto-It\mtorrent.au3:

While 1=1;вечный двигатель :)
sleep(1000*10);таймаут 10 сек
While ProcessExists("uTorrent.exe")=0;пингование
Run("C:\Program Files\uTorrent\uTorrent.exe");сеанс экзорцизма
WEnd
WEnd