Видимо для тех у кого такая проблема, лучшего способа чем использовать getconkbl.dll — нет. Т.к. получение раскладки работает только в приложениях Windows(Оконных), а консольные приложения — не такие… Они не хранят в себе раскладку, а хранят ее где-то в скрытом Windows приложении(conhost.exe), которое getconkbl.dll может найти. А JKL же работает нормально только тогда когда UAC полностью отключен(загуглите если не знаете), иначе будет работать только в приложениях запущенных в том же уровне доступа в котором запущен и Mahou. Как вариант еще можно отключить JKL если не пользуетесь консольными приложениями(если пользуетесь поставьте getconbkl.dll), и все должно работать нормально, т.к. тогда будет использоваться только стандартный метод получения раскладки(и getconkbl для консольных если стоит).
Все, нашел причину… При включенном UAC хук используемый в JKL запущенном от администратора не является глобальными, т.е. только для администраторских приложений, и наоборот. И наблюдается такое поведение чаще всего именно в консольных приложениях т.к. получить раскладку там обычным способом невозможно, нужно использовать что-то вроде JKL или getconkbl.dll…
Я не ожидал что будет такое странное разделение хука, что админский хук не имеет доступа к юзерским приложениям. Выходит JKL — не такой идеальный как я думал, буду думать и доделывать...
После того как запустил Mahou от админа, попробуй убить в диспетчере задач jkl.exe и jkl_x86.exe и запусти потом вручную от админа jkl.exe(рядом с Mahou.exe). И еще попробуй без JKL проверить.
P.S. У меня лично UAC вообще отключен(через реестр, просто надоел :) ), так что поведение у тебя и у меня может отличаться...
Странно, у меня нормально работает(только что проверил), А перезапускал Mahou после вставки флагов? Попробуй со стандартными настройками, т.е. закрой Mahou, перемести свой Mahou.ini, и запусти Mahou снова.
Я например всегда знаю сколько слов пишу и между какими меняю раскладку, поэтому этой функцией редко пользуюсь. Но есть еще альтернатива: Зажать Ctlr+Shift и нажимать стрелку влево до последнего слова которое нужно конвертировать, а потом нажать гор. клавишу конвертации выделенного текста.
Есть отдельная функция называется конвертация последних нескольких слов см. #15. Нажимаем гор. клавишу нескольких слов, а потом цифрами сколько слов на клавиатуре(не numpad).
Как написано на wiki, можно поставить свои флаги в папку Flags рядом с Mahou.exe, с форматом png, и названием из первых двух букв которые можно увидеть если включить подсказки языка(и выключить использовать флаги для подсказок, если стоит).
Конверт линии — конверт нескольких последних введенных слов. А если хотите прям линии:
Удерживая Shift, нажимаете Home, и гор. клавишу конверт выделения в Mahou — готово. Можно конечно программно, но я не думаю что оно прям того стоит.
@Taciturn Да я не ошибся, нашел решение и создал сборку(специально для Вас) использующую эту библиотеку и работающую правильно в консольных приложениях. Позже может сделаю свой вариант(на C#), пока что так.
P.S. В цикл. режиме работает отлично и иконка в трее тоже та нужно.(без никаких эмуляций нажатий)
И еще про нажать пробел после ghbdtn.
Это значит что все ок, просто его отображение в Mahou — отключено. Теперь попробуй Ghbdtn. (И не забудь нажать "Применить"!)
P.S. Обычно я быстрее(сразу) отвечаю, просто были проблемы с интернетом.
Попробуй в latest-commit, и еще отключить JKL если включен.
Включить сниппеты, потом включить автозамену. (В их вкладках)
Пример пожалуйста, строку которую конвертировали, чем конвертировали(выделение или последнее)...
Go! Однозначно будет легче и быстрее.
А если вдруг проблема как здесь: #105, т.е. нужно перезапустить ПК, потом заработает. (главный комментарий)
Есть на Wiki, ссылка на проект, прямая ссылка нужного getconkbl.dll, просто поставь рядом с Mahou.exe, и перезапусти Mahou.
Видимо для тех у кого такая проблема, лучшего способа чем использовать getconkbl.dll — нет. Т.к. получение раскладки работает только в приложениях Windows(Оконных), а консольные приложения — не такие… Они не хранят в себе раскладку, а хранят ее где-то в скрытом Windows приложении(conhost.exe), которое getconkbl.dll может найти. А JKL же работает нормально только тогда когда UAC полностью отключен(загуглите если не знаете), иначе будет работать только в приложениях запущенных в том же уровне доступа в котором запущен и Mahou. Как вариант еще можно отключить JKL если не пользуетесь консольными приложениями(если пользуетесь поставьте getconbkl.dll), и все должно работать нормально, т.к. тогда будет использоваться только стандартный метод получения раскладки(и getconkbl для консольных если стоит).
Все, нашел причину… При включенном UAC хук используемый в JKL запущенном от администратора не является глобальными, т.е. только для администраторских приложений, и наоборот. И наблюдается такое поведение чаще всего именно в консольных приложениях т.к. получить раскладку там обычным способом невозможно, нужно использовать что-то вроде JKL или getconkbl.dll…
Я не ожидал что будет такое странное разделение хука, что админский хук не имеет доступа к юзерским приложениям. Выходит JKL — не такой идеальный как я думал, буду думать и доделывать...
После того как запустил Mahou от админа, попробуй убить в диспетчере задач jkl.exe и jkl_x86.exe и запусти потом вручную от админа jkl.exe(рядом с Mahou.exe). И еще попробуй без JKL проверить.
P.S. У меня лично UAC вообще отключен(через реестр, просто надоел :) ), так что поведение у тебя и у меня может отличаться...
Еще: вдруг окна от Админа запущены.
Странно, у меня нормально работает(только что проверил), А перезапускал Mahou после вставки флагов? Попробуй со стандартными настройками, т.е. закрой Mahou, перемести свой Mahou.ini, и запусти Mahou снова.
Включен ли JKL?
Я например всегда знаю сколько слов пишу и между какими меняю раскладку, поэтому этой функцией редко пользуюсь. Но есть еще альтернатива: Зажать Ctlr+Shift и нажимать стрелку влево до последнего слова которое нужно конвертировать, а потом нажать гор. клавишу конвертации выделенного текста.
Не знаю что ты там делал и какой размер значков ставил, у меня все нормально работает при использовании например старых флагов.
Есть отдельная функция называется конвертация последних нескольких слов см. #15. Нажимаем гор. клавишу нескольких слов, а потом цифрами сколько слов на клавиатуре(не numpad).
Как написано на wiki, можно поставить свои флаги в папку Flags рядом с Mahou.exe, с форматом png, и названием из первых двух букв которые можно увидеть если включить подсказки языка(и выключить использовать флаги для подсказок, если стоит).
Конверт линии — конверт нескольких последних введенных слов. А если хотите прям линии:
Удерживая
Shift
, нажимаетеHome
, и гор. клавишу конверт выделения в Mahou — готово. Можно конечно программно, но я не думаю что оно прям того стоит.P.S. Если оч. уж сильно надо то добавлю.
Да, всегда пожалуйста.
@Taciturn Да я не ошибся, нашел решение и создал сборку(специально для Вас) использующую эту библиотеку и работающую правильно в консольных приложениях. Позже может сделаю свой вариант(на C#), пока что так.
P.S. В цикл. режиме работает отлично и иконка в трее тоже та нужно.(без никаких эмуляций нажатий)