vadim3sh
Full Member | Редактировать | Профиль | Сообщение | Цитировать | Сообщить модератору OnMyDSeeAtAll Цитата: Поменял на 1 нажатие... Спасибо, работает, но через 2 через 3 раза... Кстати, в этом окне работает безупречно (окно ввода сообщения в форум). завтра пошлю файлик, если будет желание, запустите на Вашей машине, пожалуйста. Может, при копировании с web странички как-то кавычки неправильно передаются.. (как то раз была такая засада). Пробовал обмануть проблемку по-другому: ну, думаю, раз так не хочешь, я тебе так вот (при наличии жесткой привязки к локали можно и команду для LED индикатора привязать): Код от The gray Cardinal Код: ~^Shift:: Exit ~+Ctrl:: Exit Ctrl:: SetFormat, Integer, H Locale1=0x4090409 ; Английский (американский). Locale2=0x4190419 ; Русский. WinGet, WinID,, A ThreadID:=DllCall("GetWindowThreadProcessId", "Int", WinID, "Int", "0") InputLocaleID:=DllCall("GetKeyboardLayout", "Int", ThreadID) if(InputLocaleID=Locale1) SendMessage, 0x50,, % Locale2,, A else if(InputLocaleID=Locale2) SendMessage, 0x50,, % Locale1,, A Exit | Определяя идентификатор локали : Код: F11:: SetFormat, Integer, H WinGet, WinID,, A ThreadID:=DllCall("GetWindowThreadProcessId", UInt, WinID, UInt, 0) InputLocaleID:=DllCall("GetKeyboardLayout", UInt, ThreadID, UInt) MsgBox, %InputLocaleID% Return | Так у меня он (скрипт) вооще без каких-либо признаков жизни(идентификатор определяется)... Возможно из-за версии AHK: скрипт 2006 года, у меня AutoHotkey_L Наверное, все-таки, проблема с прокладкой между рулем и сиденьем P.S. Может кто-нибудь подсказать: почему для раскладок с кодом вида 0x8190819 скрипт работает, а раскладки, определяемые как 0xF0042412 (с дополнительной буквой впереди) полностью игнорируются??? P.P.S Братцы, памагите пазобратца... Совсем запутался. Короче так: Когда скрипты AHK работают непосредственно с идентификатором раскладки, как-то так: PostMessage, 0x50, 0, 0x8090809,, A он записывается в виде: 0x8090809 - это для британской, например. И в таком же виде он определяется при помощи специальных скриптов. Все пока красиво. Однако, если говорить про несколько раскладок для одного языка, начинается каша: Русская обычная раскладка определяется как 0x4190419, и отзывается, когда скрипт использует такой идентификатор. Однако если мы включаем Russian(Typewriter), при определении мы получаем код 0xF0080419. И на такой код раскладка при попытке вызвать ее цкриптом не отзывается. В регистре для этих раскладок мы имеем записи: 00000419 и 00010419. Откуда берется, например, 0x4190419 - я тупо не понимаю. И мистер гугл молчит. Там вообще только про LVIC, который имеет 5 знаков и оперирует только языками без детализации раскладок. Итог: После бессовестного издевательства над временем OnMyDSeeAtAll он сделал версию скрипта который работает без проблем, оперируя идентификаторами локали как простых, так и дополнительных раскладок. Так что Цитата: говорить про несколько раскладок для одного языка, начинается каша | теряет актуальность Единственный непонятный глючок на одной из машин: в Sticky Notes и в AkelPad скрипт переключает с русской раскладки на английскую, после чего работать отказывается. Что там на машине не так, так и не нашел | Всего записей: 457 | Зарегистр. 28-01-2006 | Отправлено: 06:08 02-10-2013 | Исправлено: vadim3sh, 20:44 06-10-2013 |
|