[windows] создание custom keymap
http://codeplex.com/sharpkeys позволяет переназначать клавиши.
Лучше бы была тулза для генерации полноценных keymap, а не для алиасинга существующей.
мне ход клавиш понравился
Для винды есть аналог xev, чтобы посомтреть keycode?
AutoHotKey
AutoHotKeyа он может использовать функциональный клавиши, которые не были определены дефолтной раскладкой? У сановской клавы есть несколько странных клавиш, которые можно было бы заюзать.
может. Только Fn не может, а всякие кнопки громкости и прочую ерунду запросто.
http://msdn.microsoft.com/en-us/goglobal/bb964665.aspx , я с её помощью переназначал в русской раскладке точку на кейпаде на точку, а не на запятую.
Не знаю, поможет ли тебе Там слишком бедный функционал на лицо.Чего именно тебе не хватает?
тулза для генерации полноценных keymapMicrosoft Keyboard Layout Creator.
Среди всего прочего и ход клавиш мне тоже пришёлся не по душе.Ну и нафига тогда тебе эта клава?
Для винды есть аналог xev, чтобы посомтреть keycode?В том же SharpKeys там, где выбираешь клавишу, есть кнопка "Type key".
Microsoft Keyboard Layout Creator.Странное чуство юмора у MSовцев. Как можно назвать keymapом нечто, что определяет всего лишь половину клавиш клавиуатуры. Вопрос знатокам винды: как в таком случае называется системный объект, управляющий настройками остальной половиной клавиш?
Для переопределения клавиш независимо от раскладки, делаются keyboard hooks; есть и фронтэнды для этого, например, http://codeplex.com/sharpkeys
Но тоже бедна функционально. Пробую sharpkey, отпишусь о результатах
она без хуков работает (в смысле не требует дополнительного сервиса или загурежнной в память программы)Ты не в теме, keyboard hooks - это фича винды, она работает всегда, никаких дополнительных сервисов/программ для этого не нужно; просто на чистой винде не задан ни один хук.
сканкоды подробно расписаны например здесь
Заодно задам встречный вопрос - можно ли в винде заставить капслок работать как зажатый шифт?
Заодно задам встречный вопрос - можно ли в винде заставить капслок работать как зажатый шифт?Повторю - чем писать эти хуки руками, гораздо легче воспользоваться нормальным фронтендом, тем же sharpkeys, к примеру.
Запустил сейчас sharpkeys - в списке сканкодов ёесть и капслок, и шифт. Так что ответ на твой вопрос - да.
SharpKeys is a utility that manages a Registry key that allows Windows to remap one key to any other keyну и бедная же функциональность у этого дотнетового чуда - обёртка для реестра. А провозможность ремапа в реестре я и раньше слышал. Только вот мне казалось, что много таким способом не добиться.
И вот ожидаемое открытие, которое поджидало меня при чтении мануала.
Things that SharpKeys will not do:Кстати, оно почти слово в слово повторяет MSDNовскую инфу об опциях реестра, впрочем я не удивлён
* Allow you to swap two keys with each other - e.g. you can’t have Q and Z swap places because the remapping code would get confused
* Map multiple key presses to one key - e.g. it will not support an attempt to remap Ctrl+C to the F5 key
* Map mouse clicks to any key
* Support certain hardware keys that never make it to Windows - e.g. Logitech’s volume buttons or most Fn keys
* Support multiple mappings for different users - the Windows key being tweaked is for an entire machine
* Protect you from yourself - if you disable your DEL key and can’t login because CtrlAltDel doesn’t work now, you’ll have to reformat
Дальнейшее впечатления от проги: очень жаль, что её нельзя скачать с официального сайта. Хотя возможно для этого нужна ява, но стоило хотя бы предупредить своего посетителя о необходимости нестандартной функциональности его вебклиента. Поскольку предупреждений не было, будем полагать, что так оно и надо.
Порадовала возможность узнать какой-то код клавиши, нажав на неё. Жаль только ни правая, ни левая alt не опредилась.
Зато определились все дополнительные клавиши как 00_00 key disabled. Ну это уже надо uttsc конфигить. Зато определился левый бэкслеш как 00_56 key_undefined. При этом, что странно, работает он на данный момент в винде точно так же как и правый, который определён, и на который собственно и назначен бекслеш.
Последнее полезное наблюдение заключается в том, что принцип действия map keyboard и sharpkeys оказался идентичным, они оба правят реестр.
мне нужно такое поведение капслока, как если бы был зажат шифт (то есть чтобы в верхний ряд переводились не только буквы, но и остальные символы). Sharpkeys - фронтенд к тому способу что я описал выше, а значит, не умеет такого. По крайней мере, под XP.
ну и бедная же функциональность у этого дотнетового чуда - обёртка для реестраЯ тебе и говорил - это удобный фронтенд для настройки keyboard hooks.
Дальнейшее впечатления от проги: очень жаль, что её нельзя скачать с официального сайтаКачал с codeplex, никаких проблем не было (как и с другими программами с codeplex).
мне нужно такое поведение капслока, как если бы был зажат шифтА что, твой пост можно понять каким-то другим образом?
Sharpkeys - фронтенд к тому способу что я описал выше, а значит, не умеет такогоПочему не умеет?
Конкретно с шифтом мне очень лениво тестить, потому что для этого нужен перелогин, но у меня на некоторых дополнительных кнопках висит Win, и все хоткеи замечательно работают. Кроме того, как можно видеть, кнопки, к примеру, g и G там не различаются, считаются за одну - поэтому не вижу ничего, что помешало бы такому способу работать. Делаешь пробелу действие как у shift - всё, пробел+любаяклавиша работает как shift+этаклавиша.
MSKLC прекрасно с этим справляется. Создай новый лэйаут на базе стандартного и установи соотв-ую галку.
А еще можно французскую клаву поставить, там по умолчанию так, как ты хочешь (правда, она AZERTY).
Запустил сейчас sharpkeys - в списке сканкодов ёесть и капслок, и шифт. Так что ответ на твой вопрос - да.логика хромает. Видишь, ли зажатый шифт и капслок работают по-разному. Так что при твоём подходе придётся зажимать капслок, что по-моему, ничем не лучше зажимать шифт.
Однако же, тем не менее, с ответом ты угадал. Можно добиться требуемого, но для этого нужно не хуки использовать, а предложенную раннее нативную утилиту от MS: Microsoft Keyboard Layout Creator
Качал с codeplex, никаких проблем не былоесли бы ты осилил мою цитату дальше, то обнаружил бы мой намёк на то, что оно требует нестандартной функциональности, то бишь явы.
обнаружил бы мой намёк на то, что оно требует нестандартной функциональности, то бишь явы.Качаю дома проги с codeplex, ява не стоит и вообще ие 64битный. Всё работает, ЧЯДНТ?
И да, было бы странно, если бы один из основных сайтов МС использовал чужую технологию для базовой функционаьлности.
Так что при твоём подходе придётся зажимать капслок,Наконец-то понял, что ты имел в виду.
Тогда да, только MSKLC.
что же, я высказался недостаточно верно, он требует ява скрипт
Только Fn не можеткстати, а мне как раз нужно сделать Fn на стандартной клаве.
какая из этих прог может помочь?
Есть два пути:
1) поддержка родными средствами ОС. Для этого нужно настроить что-то вроде драйвера клавиатуры в hardware abstraction level - все предложенные вариант меняли либо раскладки (только буквенные клавиши либо меняли местами существующие клавиши. Добиться с помощью предложенных прог существенно отличающегося поведения ОС не удалось. Примеры того, что не удаётся сделать: ввести новые коды (например код MiddleWin не существует, хотя есть rwin и lwin ввести новые режимы (есть один дополнительный режим - Caps Lock) и других не ожидается, ввести новые клавиши, переключающие состояния (добавить что-либо к набору из Ctrl,Alt,Shift,Win).
2) поддержка сторонними программами, которые будут висеть в памяти и перехватывать клавиатурные события. Недостатки: лишние тормоза, и неполная применимость: боюсь, что в некоторых игрушках оно работать не будет. Достоинства: больше шансов получить что нужно, потому как от MS глупо ожидать конфигурируемых компонентов.
Тут наверняка открыт широкий простор для поисков. На форуме рекомендует автохоткей, так что можешь попробовать и рассказать о результатах. Особенно меня интересуют возможность задавать хоткеи на последовательность комбинаций клавиш а не на одну и возможность создавать кастом моды.
В идеале нужно использовать обе возможности 1) и 2 распределив задачи согласно их уровню. Введение новых клавиш оставить за системой, а их использование за приложением.
просто на чистой винде не задан ни один хуксомнительное утверждение
Имелось в виду, что этот ключ в реестре - пустой. Разве не так?
так, именно так. Пустой ключ - это есть дефолтное значение. У радиста, видимо, альтернативное восприятие слова "чистая винда". Возможно он называет таковой винду без вирусов
нет, у меня другое понимания слова хук применительно к винде
мы тут клавиатурные хуки обсуждаем, а не хуки apiшные. А клавиатурные хуки задаются одним ключиком в реестре. Который под дефолту пустой
ну хз, ни в одной из первых нескольких ссылок в гугле по фразе "keyboard hook" ничего не говорится про реестр
. Зато определился левый бэкслеш как 00_56 key_undefined. При этом, что странно, работает он на данный момент в винде точно так же как и правый, который определён, и на который собственно и назначен бекслеш.О, придумал как его использовать. Хочу на него забиндить символ "_". Вот только keyboard hook - он позволяет переназначить саму клавишу на сочетание ('-','_'). А layout creator меняет поведение уже всей этой клавиши, что меня не устраивает. Что нужно сделать - добавить новую клавишу ('_','_' скажем, и добавить её в layout и там уже настроить поведение. Как это делается под виндой?
Оставить комментарий
yroslavasako
Есть клава. Очень отстойная и неудобная, да к тому же с дебильным расположением кнопок. Есть желание эти перенастроить кнопки с тем, чтобы они были более адекватно расположены на клаве. В том числе вместо правого win приделать вызов меню.