Тема: AHK: ControlSend с разными языками
Здравствуйте, форумчане.
На одном проекте MTA включили анти-чит, который блокирует использование AHK (я и многие другие игроки используют его для удобства, а не для читерства или другого преимущества над другими игроками).
Хотел воспользоваться AHK Hider, но видимо, для 10 винды не подходит.
Путём тестов выяснил, что ввод сообщения через ControlSend работает, но возникла проблема с языком ввода текста.
В самом начале я как бы меняю раскладку на английскую (это необходимо для того, чтобы открылась консоль):
SendMessage, 0x50,, 0x4090409,, A
*открытие консоли*
Затем, я ввожу текст, но перед этим меняю раскладку на русскую:
SendMessage, 0x50,, 0x4190419,, A
ControlSend,, me привет, MTA: San Andreas
но из "me привет" остаётся только "привет". Если не переключать раскладку с пом. SendMessage, то остаётся только "me".
Пробовал цикл, который посимвольно читает строку и в зависимости от символа меняет раскладку:
Loop, parse, wText
{
if A_LoopField contains %eng%
SendMessage, 0x50,, 0x4090409,, A
else
SendMessage, 0x50,, 0x4190419,, A
ControlSend,, %A_LoopField%, MTA: San Andreas
}
и вместо "me привет" выводит "mу привет".
Также заметил проблемы с регистром - он просто игнорирует заглавные буквы, запятые меняет на точки.
Пробовал в начале кода ставить
StringCaseSense, Locale или StringCaseSense, On - не помогает.
Помогите, как его надрессировать, чтобы он слушался регистр и другие знаки?