Тема: AHK:Изменение языка текста с английского на русский и наоборот
Если не владеешь 10-пальцевым методом печати на клавиатуре т.е. не умеешь печатать вслепую, часто сталкиваешься с ситуацией когда напечатав предложение , посмотрев на монитор , обнаруживаешь что оно на тарабарском языке. Т.е. ты думал что печатал на английском , а на самом деле печатал на русском и наоборот.
Для ленивых я придумал скрипт который позволяет нажатием клавиши исправить досадную ошибку.
1)При нажатии горячей клавиши Insert::- скрипт выделяет последнее напечатанное слово (или одиночный символ) и печатает его на другом языке как если бы мы нажимали те же клавиши но при другой раскладке клавиатуры.
2)При нажатии горячей клавиши ^Insert:: (Ctrl+Insert)- cкрипт выделяет все предложение и переводит .
3) При нажатии горячей клавиши +Insert:: (Shift+Insert)- cкрипт выделяет последний символ и переводит.
4)При нажатии горячей клавиши #Insert:: (Win+Insert)- cкрипт выделяет конец предложения и переводит.
^Ins::
send {Shift Down}{Home}{Shift Up} ;выделяем строку
Gosub, s1
return
Ins::
send {Ctrl Down}{Shift Down}{Left}{Shift Up}{Ctrl Up}
;выделяем слово
Gosub, s1
return
+Ins::
send {Shift Down}{Left}{Shift Up}
;выделяем символ
Gosub, s1
return
#Ins::
send {Shift Down}{End}{Shift Up} ;выделяем конец строки
Gosub, s1
return
s1:
send ^{vk43} ;Ctrl+C
Text=%Clipboard%
V:= ""
EN1=QWERTYUIOP{}qwertyuiop[]
RU1=ЙЦУКЕНГШЩЗХЪйцукенгшщзхъ
EN2=ASDFGHJKL:"asdfghjkl;'
RU2=ФЫВАПРОЛДЖЭфывапролджэ
EN3=ZXCVBNM<>?zxcvbnm,./
RU3=ЯЧСМИТЬБЮ,ячсмитьбю.
EN4=~@#$^&|`
RU4=Ё"№;:?/ё
EN=%EN1%%EN2%%EN3%%EN4%
RU=%RU1%%RU2%%RU3%%RU4%
Loop, parse, Text
{
M1:=A_LoopField
if InStr(EN, M1)
{
L1=%En%
L2=%RU%
}
else if InStr(RU, M1)
{
L1=%RU%
L2=%En%
}
else
{
V.=A_LoopField
L1=
L2=
}
Loop, parse, L1
{
M2:=A_LoopField
if (Asc(M2)=Asc(M1))
{
N:=A_Index
break
}
}
Loop, parse, L2
{
if (N=A_Index)
{
V.=A_LoopField
break
}
}
}
Clipboard=%V%
Send ^{vk56} ;Ctrl+V
return
*Очень удобный скрипт. Я его скомпилировал и поставил в меню автозагрузки.