1

Тема: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

Хочу для удобства работы в Автокаде насоздавать себе дублей (синонимов) хоткеев, которые бы состояли только из букв и цифр, т.е. чтобы не нужно было нажимать ctrl, alt и shift.
При этом нужно:
а) чтобы можно было нажимать клавиши, входящие в хоткей, последовательно ("залипание"), и чтобы действие зависело от последовательности нажатия. Т.е. "з+э+в" и "в+э+з" - разные хоткеи.
б) чтобы можно было создавать хоткеи из двойных и тройных нажатий одной и той же клавиши. Т.е. если 2 раза быстро нажать кнопку "А" это одно действие, а если 3 раза - другое

Т.е. смысл скрипта примерно такой: к примеру, нажимаю я З+Э+В, а автокад воспринимает это как CTRL+SHIFT+F9


Зачем это надо?
Причин несколько:
1) чтобы хоткеи располагались на клавиатуре в удобных для меня местах
2) чтобы хоткей можно было нажать двумя (или даже одним) пальцами одной руки
3) чтобы лучше запомнить ( к примеру нажимаю я хоткей "з+в+э" и по первым буквам понимаю, что это я вызываю команду Запомнить Видовой Экран)

Проблем тут я вижу несколько:
1) нужно чтобы эти сочетания работали только в автокаде. В других программах кнопки должны восприниматься обычным образом
2) как только я нажимаю в автокаде буквенную клавишу - в командной строке автокада начинает набиваться текст. Поэтому чтобы этого не происходило нужно чтобы скрипт полностью блокировал автокаду доступ к клавиатуре до момента пока скрипт не обработает нажатые клавиши
3) как обмануть автокад, заставив его считать, что нажаты не те клавиши, что я реально нажал, а совсем другие. К примеру, я нажал быстро два раза кнопку "У", а автокад должен "думать", что было нажато CTRL+SHIFT+"+"
4) как узнать какие горячие клавиши (хоткеи) уже заняты автокадом, вендой или другим софтом, чтобы когда я буду создавать оригинал хоткеев не использовать уже кем-то занятые (а то к примеру, у меня в firefox отвалился хоткей ctrl+D и я никак не могу вычислить кто его занял)
5) Как отличить двойное или тройное нажатие кнопки от двухкратного, трехкратного? Т.е. как скрипт определит, что нажав два раза "А" я вызвал хоткей, а не просто напечатал АА?

2

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

Как сделать горячие клавиши, не используя клавиши-модификаторы, есть в статье "Горячие клавиши для мыши, джойстика и клавиатуры". Например Numpad0 & Numpad1::MsgBox Вы нажали Numpad1, удерживая Numpad0.

Как сделать двойные, тройные и т. д. нажатия - есть несколько тем на форуме, воспользуйтесь поиском.

Как сделать "чтобы эти сочетания работали только в ..." - читайте про контекстно-чувствительные горячие клавиши в статье #IfWinActive.

3

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

Смотрите в справке Hotstrings: вводите текст в командную строку, если он совпадает с шаблоном, текст стирается и выполняется действие.
Либо можно создать собственную командную строку, вызывать ее горячей клавишей и вводить текст. Можно сделать аналог command palette в Sublime Text с подсказками и нечетким поиском.

4 (изменено: BSN201904, 2019-09-21 18:44:06)

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

ypppu пишет:

Как сделать горячие клавиши, не используя клавиши-модификаторы, есть в статье "Горячие клавиши для мыши, джойстика и клавиатуры". Например Numpad0 & Numpad1::MsgBox Вы нажали Numpad1, удерживая Numpad0.

Как сделать двойные, тройные и т. д. нажатия - есть несколько тем на форуме, воспользуйтесь поиском.

1) Мне не нумпад клавиши нужны в качестве хоткеев, а обычные. Буквенные и цифровые.
2) А как залочить автокад, чтобы он не реагировал на нажатите буквенных клавиш пока скрипт не закончит обработку и не подменит их? Я знаю что в других макрорекордерах есть функция "заблокировать клавиатуру" пока проигрывается скрипт. А тут мне нужно заблокировать клавиатуру для конкретного приложения, а потом подменить код события нажатой клавиши. Т.е. обмануть приложение: я нажимаю одни кнопки, а приложение считает, что другие. Это возможно сделать на AHK?

5

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

Хотел бы помочь вам, но вы почему-то не реагируете на вопросы, так что не вижу смысла.

Разработка AHK-скриптов:
e-mail dfiveg@mail.ru
Telegram jollycoder

6

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

stealzy пишет:

Смотрите в справке Hotstrings: вводите текст в командную строку, если он совпадает с шаблоном, текст стирается и выполняется действие.
Либо можно создать собственную командную строку, вызывать ее горячей клавишей и вводить текст.

Не. Хотелось бы без командной строки обойтись хотя бы для команд зуммирования и панорамирования.
Вызывать командную строку, вводить в ней текст, нажимать ENTER...
Слишком неудобно чтобы просто сделать зум или подвинуть изображение в автокаде.
Мышкой это делается за доли секунды. Хотелось бы, чтобы и с клавиатуры это делалось также быстро и удобно.

7

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

BSN201904, это по второму предложению вы ответили, а первое почему проигнорировали?
И определитесь уже вам нужны буквенные команды или горячие клавиши для зума и перемещения.

8

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

teadrinker пишет:

Хотел бы помочь вам, но вы почему-то не реагируете на вопросы, так что не вижу смысла.

Ответил

9

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

stealzy пишет:

И определитесь уже вам нужны буквенные команды или горячие клавиши для зума и перемещения.

Хорошо.
Расскажу поподробней.
А то Вам мои хотелки кажутся странными.
Видите ли в чём дело.
Я люблю работать над проектами в автокаде лёжа в ванной. Я лежу в ванной часа по 4-5. Пока батарейка у ноутбука не разрядится.
У меня для этого нетбук весом 1.1 кг, который я держу левой рукой на вису над водой когда лежу в ванной.
Соответственно правой рукой я проделываю все манипуляции: зум, драг, вызов команд, выбор объектов и т.д. и т.п.

Т.е. я вынужден проделывать одной правой рукой используя только клавиатуру то, что обычно разработчики делают двумя руками и мышью.

Вот я и задумался: что мне не хватает, чтобы одной рукой работать также быстро и эффективно, как когда я работаю двумя руками и мышью?

А не хватает мне хоткеев типа "А+А", "А+А+А", "А+П"

Также мне не удобно, что хоткеи трудно запоминать.

Вот если бы они были абревиатурами того, что я хочу сделать -  было бы удобно.

Вообщем не вижу смысла дальше разжёвывать - по моему теперь и так всё очевидно.

"Откуда ноги растут" у моих хотелок

10

Re: AHK: Как сделать дубли HOTKEYS только из буквенных и цифровых клавиш?

Да, прям очень интересно, где вы там лежите и чего хотите.
Кстати, опять игнорируете мой вопрос. Ждете, когда вам дадут готовый код?
Вы спросили как назначить действия на поочередную последовательность клавиш, вам указали команду, которая это реализует.
Теперь, вместо того, чтобы открыть справку и написать (а точнее скопировать) код, вы цепляетесь ко запасному предложенному варианту, затем вмешиваете зачем-то обычные хоткеи для перемещения и зума, пишите про свою ванну и хотелки. И мне не кажутся странными ни горячие клавиши, ни последовательности клавиш, я пользуюсь обеими вариантами, просто механизм у них разный.