1

Тема: AHK: работа с текстом из буфера обмена

Ещё один глупый вопрос. Нужно сделать следующее:

1. Скопировать текст в буфер.
2. Провести с ним серию операций (Find&Replace, по сути — транслитерация).
3. Вернуть обратно в активное окно.

С пунктами 1 и 3 всё ясно, но вот как реализовать пункт 2? Есть ли у AHK такие возможности?

Спасибо.

2

Re: AHK: работа с текстом из буфера обмена

Для Find&Replace подойдет StringReplace.
Если надо что-то больше, то RegExReplace() + Регулярные выражения (RegEx) - краткий справочник.

3

Re: AHK: работа с текстом из буфера обмена

Спасибо! Похоже, StringReplace мне более чем достаточно.

А вы не знаете, как помирить его с UTF-8?

Скрипт имеет такой вид:

StringCaseSense, On

#q::
SendInput {LControl Down}{sc01E}{LControl Up}{LControl Down}{sc02D}{LControl Up} ;Select All, Cut
StringReplace, clipboard, clipboard, а, a, All ;changing symbols
StringReplace, clipboard, clipboard, А, A, All
StringReplace, clipboard, clipboard, б, b, All
[...]
StringReplace, clipboard, clipboard, ш, š, All
StringReplace, clipboard, clipboard, Ш, Š, All
SendInput {LControl Down}{sc02F}{LControl Up} ;Paste

Однако в отчете о его работе я вижу такое:

005: StringReplace,clipboard,clipboard,Р°,a,All
006: StringReplace,clipboard,clipboard,Рђ,A,All
007: StringReplace,clipboard,clipboard,Р±,b,All
008: StringReplace,clipboard,clipboard,Р‘,B,All

Что с этим можно сделать?

4

Re: AHK: работа с текстом из буфера обмена

Если скрипт в кодировке UTF-8, то Вам нужна юникодная версия AutoHotkey_L.

5

Re: AHK: работа с текстом из буфера обмена

Ага, я вот как раз тоже ее обнаружил, работает. Спасибо!