TempClipboard := ClipboardAll Clipboard = SendInput, ^{vk43} ; Ctrl + C ClipWait, 0 ; если буфер обмена пуст (ничего не выделено), определяем и выделяем ; с помощью ф-ции GetWord() последнее слово слева от курсора SelText := ErrorLevel ? GetWord() : Clipboard pResult := ConvertText(SelText) ; получаем конвертированный текст и раскладку последней найденной буквы
Clipboard := StrGet(pResult + A_PtrSize) SendInput, ^{vk56} ; Ctrl + V ; переключаем раскладку клавиатуры в зависимости от раскладки последней найденной буквы Sleep, 200 SwitchLocale(NumGet(pResult+0, "UInt")) Sleep, 200 Clipboard := TempClipboard }
GetWord() { While A_Index < 10 { Clipboard = SendInput, ^+{Left}^{vk43} ClipWait, 1 if ErrorLevel Return