1

Тема: AHK: Хитрый hotstring (исправление орфографии и проверка себя)

Всех приветствую!

Очередной ступор в очередных трех соснах – помогите, пожалуйста, разобраться. 

Тема такая. Есть много хотстрингов, правящих орфографию, вида (для примера):

::карова::корова

Пользуюсь ими уже давно, но вот сейчас осознал, что уровень грамотности от них не повышается, потому что неправильно вбитое слово заменяется на правильное, никак не информируя меня о допущенной ошибке. Решил придумать код, который станет мне сигнализировать, что я написал с ошибкой, но при этом и исправлять будет неверно написанное. Получился он вот такого вида:

::карова::
SendInput корова ОШИБКА
Sleep 80
SendInput {Backspace 6}
return

Вроде бы просто все: набираешь слово "карова" – на выходе получаешь "корова ОШИБКА", и "ОШИБКА" стирается почти моментально, но все же заметно для глаза, при этом не раздражает и не мешает печати. Но в процессе эксплуатации данного кода (громкое название, конечно) обнаружились две проблемы:

1. После такого слова невозможно поставить знак препинания: печатаешь буквально "карова,", получаешь "корова " (знак каким-то образом съедается скриптом);

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



Сама идея, что показывается слово "ОШИБКА" и быстренько стирается, мне нравится, ее надо оставить, в остальном реализация оставляет желать помощи знатоков. Можете подсказать, пожалуйста, как сделать так, чтобы нормально срабатывало? Заранее спасибо!

2

Re: AHK: Хитрый hotstring (исправление орфографии и проверка себя)

У меня так работает:

::карова::корова ОШИБКА{Sleep 100}{Left}{BS 6}{Del}
Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

3

Re: AHK: Хитрый hotstring (исправление орфографии и проверка себя)

teadrinker пишет:

У меня так работает:

И у меня теперь тоже. Огромное спасибо!)