Цикл статей по Sign of Misery: пишем автоматизированный набиратель текста

  1. Пишем автоматизированный набиратель текста

    Где это может пригодиться? Вот например в Клавогонках) Конечно придется помудрить с определением текущей раскладки, ее сменой, определением Большой и малой буквы, но смысл уловить можно)

    Итак...
    Сегодня нам понадобится только s0m. Разнообразие команд позволяет использовать в нашей программе эмуляцию нажатия клавиш. Я покажу на примере, как можно программно вывести скопированную в буфер строку, с определенной задержкой между нажатиями клавиш.

    Скрипт в HTML:
    http://exctcryptor.ucoz.ru/script_klavogonki.html

    Скрипт в исходнике s0m:
    http://exctcryptor.ucoz.ru/klavogonki.s0m

    Скрипт в JPG:


    Скомпилированный скрипт:
    http://exctcryptor.ucoz.ru/klavogonki.exe
    Для проверки необходимо открыть Блокнот, набрать в него текст заглавными буквами английского алфавита, и скопировать его. Затем нажать Да при запуске скрипта, установить курсор в блокнот и ожидать... Текст будет печататься сам)

    Давайте разберемся с командами скрипта:
    Выводим пользователю сообщение о необходимости скопировать текст в буфер обмена, и проверяем нажатую кнопку диалога.
    Теперь копируем в переменную буферный текст, получаем его длину.
    Далее в цикле из переменной с текстом копируем в другую переменную по одной букве, и передаем эту букву подменой параметров в команду нажатия клавиш.
    Если клавиша нажата, необходимо обязательно ее отжать. Ну и задержку вставляем небольшую, чтобы система (клавогонки) не думала, что вы - бот! Как только все буквы мы переберем (проверяется номер текущего символа и сравнивается с длиной буфера обмена) - завершаем скрипт.