Вопрос или проблема
Если кто-то знает, как временно отключить/переопределить функциональность клавиши Shift в Windows, чтобы она не отменяла состояние Numlock и клавиши на цифровой панели 0-9 выдавали другие клавиши (insert, end, down, page down, left, clear, right, home, up, page up), я был бы рад заплатить за решение этой проблемы.
Причина: у меня есть приложение (Reaper), которое я использую как на Mac, так и на ПК, и множество горячих клавиш, которые я назначил в приложении на Mac, просто не работают на ПК, такие как Shift и любая числовая клавиша на цифровой панели (одна, или в сочетании с другой модификаторной клавишей). Mac значительно лучше использует модификаторные клавиши для горячих клавиш в приложениях, чем ПК (со всеми его жестко закодированными win+key сочетаниями клавиш и другими).
Я вынужден использовать ПК на работе, что стало источником бесчисленных часов боли, мучений и разочарования. Но этот маленький кошмар действительно сбивает с толку. Он преследует меня последние 2.5 года. Я в отчаянии. Я, вероятно, провел дни (даже недели) своей жизни, пытаясь найти множество потенциальных решений этой проблемы, включая AutoHotkey, EventGhost и Pulover’s Macro Creator. Но ни одно из них не похоже на то, что может разрешить функциональность Shift+Numpad 0-9 (или Ctrl+Alt+Shift, Alt+Shift, Ctrl+Win+Shift и т.д.) в Reaper (или в любом другом приложении, так сказать). Клавиша Shift либо изменяет вывод клавиши Numpad, как описано выше, либо, когда она используется в сочетании с другими модификаторами, клавиша Shift удаляется как модификатор, так что только другие модификаторные клавиши распознаются в сочетании с клавишами Numpad 0-9.
Мне действительно нужно найти способ использовать все свои горячие клавиши Shift (и любые другие модификаторы) вместе с Numpad 0-9 на ПК. Я искренне надеюсь, что кто-то нашел решение этой ужасно раздражающей проблемы.
Редактирование:
Чтобы быть совершенно ясным, я не ищу/не заинтересован в обходных решениях для этой проблемы. Я надеюсь найти фактическое решение, которое удалит функциональность “Shift временно отменяет Numlock” на ПК с Windows – даже если это требует взлома BIOS или реестра, модификации каких-либо системных файлов Windows или использования дополнительного программного обеспечения для достижения этого. Это решение, которым я заинтересован и за которое готов заплатить. Я хочу иметь возможность действительно отправлять сочетания клавиш shift+numpad(0-9) в приложения на ПК так, как я могу делать это на Mac. Спасибо за любую помощь, которую кто-то может предоставить в выяснении, как это осуществить!
Редактирование2:
Следующий скрипт AHK работает, но раздражительная “функция” Windows, преобразующая Shift+Numpad(0-9) в Numpad(Ins-PgUp), все еще портит вывод – несмотря на то, что сочетание клавиш поступает из AHK, а не от физической клавиатуры:
#If winActive("ahk_exe reaper.exe")
+numpadEnd::
send +{numpad1}
return
С использованием скрипта AHK, одиночное нажатие Shift+NumpadEnd, Numlock ВЫКЛ:
A0 02A d 1.45 LShift
23 04F h d 0.22 NumpadEnd
61 04F i d 0.00 Numpad1
61 04F i u 0.01 Numpad1
23 04F s u 0.08 NumpadEnd
A0 02A u 0.16 LShift
Без скрипта AHK, одиночное нажатие Shift+NumpadEnd, Numlock ВЫКЛ:
A0 02A d 0.74 LShift
23 04F d 0.22 NumpadEnd
23 04F u 0.11 NumpadEnd
A0 02A u 0.20 LShift
Тем не менее, в любом случае, REAPER всё еще видит нажатую ту же комбинацию клавиш: Shift+End – НЕ Shift+NumpadEnd. Таким образом, горячие клавиши Shift+Numpad все еще будут конфликтовать с другими сочетаниями клавиш, которые я назначил, используя обычные клавиши home/end, PgUp/Down, стрелочные клавиши и Insert.
К сожалению, после повторных тестов, это все еще не решение проблемы необходимости отключить раздражающую функциональность Windows преобразования Shift+Numpad(0-9) в соответствующие навигационные клавиши (т.е. Shift, отменяющий Numlock).
В качестве обходного решения вы можете использовать клавиши цифровой панели с выключенным NumLock и скрипт Autohotkey, который переопределяет сочетание клавиш для вашего программного обеспечения. Когда NumLock выключен, клавиши на цифровой панели не реагируют на Shift.
Обновление:
В Reaper проблема в том, что когда вы определяете комбинацию с помощью нажатия клавиш через графический интерфейс, вы не можете вводить комбинации Shift + Нум клавиши. Но я выяснил, что вы можете импортировать/экспортировать файл конфигурации горячих клавиш. “Key map…” -> “Export shortcut key map…” экспортирует текстовый файл, который можно редактировать, а затем импортировать обратно. Там вы можете определить комбинации, включая клавишу Shift и числовые клавиши.
Например, я добавляю 2 горячие клавиши:
“Shift+Num 1” для команды “Уменьшить горизонтально”
“Shift+End” для команды “Увеличить горизонтально”
Вторая команда просто чтобы проверить, конфликтует ли она с первой комбинацией или нет. Итак, я создаю текстовый файл “test.ReaperKeyMap” с соответствующими определения:
KEY 5 97 1011 0
KEY 5 32803 1012 0
И импортирую этот файл в редактор клавиш.
И теперь, чтобы заставить комбинацию “Shift+Num1” работать, используйте этот скрипт AHK:
#If winActive("ahk_exe reaper.exe")
+numpadEnd::
send +{numpad1}
return
С выключенным NumLock, это выполнит команду “Уменьшить горизонтально”. С этим подходом вы сможете использовать все другие комбинации Shift, Alt-Shift и т.д. и числовые клавиши, не занимая другие комбинации клавиш.
Тестировалось с Reaper v 6.15 на Windows 10 pro 64bit, v.1909
Все эти USB клавиатуры работали:
- A4tech X7 G800V
- Acer KU0906 (101-клавиша, имеет Numpad в основной секции через Fn-клавишу)
- Logitech K120
История AHK (Numlock выключен):
A0 02A d 1.05 LShift [несохраненный проект] - REAPER v6.15/x64 - ЛИЦЕНЗИЯ ОЦЕНКИ
23 04F h d 0.17 NumpadEnd
61 04F i d 0.00 Numpad1
61 04F i u 0.00 Numpad1
23 04F s u 0.08 NumpadEnd
A0 02A u 0.30 LShift
Ответ или решение
Как отключить эффект клавиши Shift, который автоматически отменяет состояние NumLock в Windows: Полное руководство на русском языке
В рамках данного обсуждения мы столкнулись с классовой проблемой, связанной с клавиатурой в операционной системе Windows, в частности с поведением клавиши Shift, которая временно отменяет состояние NumLock на цифровой клавиатуре. Это влияет на функциональность программного обеспечения, такого как Reaper, и вызывает значительные затруднения для пользователей, привыкших к более гибкому управлению горячими клавишами в системе macOS. В этой статье предлагается рассмотреть возможные решения, применяя различные подходы, включая навыки программирования.
Исходная проблема
При использовании клавиш на цифровой клавиатуре в Windows, если NumLock выключен, нажатие клавиши Shift передает значения, соответствующие навигационным клавишам (например, Home, End, Page Up и Page Down), вместо ожидаемых значений от Numpad 0-9. Это приводит к конфликту в сочетаниях клавиш, которые назначены в приложении Reaper, так как программа продолжает интерпретировать их как стандартные клавиши, а не как ожидаемые комбинации с Shift.
Потенциальные решения
1. Изменение настроек реестра
Для изменения функциональности клавиши Shift необходимо внести изменения в системный реестр Windows. Однако следует отметить, что работа с реестром требует повышенной осторожности, и рекомендуется создать резервную копию перед внесением изменений.
- Нажмите
Win + R
, введитеregedit
и нажмитеEnter
. - Перейдите к следующему ключу:
HKEY_CURRENT_USER\Control Panel\Keyboard
- Найдите параметр
Scancode Map
и измените его значение, чтобы изменить поведение клавиш. Здесь могут понадобиться дополнительные исследования для установления правильной конфигурации.
2. Использование AutoHotkey
AutoHotkey — это мощный инструмент для автоматизации и переназначения клавиш. Вы можете использовать его, чтобы реализовать нужное вам поведение Shift + Numpad для сохранения функциональности.
Вот пример скрипта:
#If winActive("ahk_exe reaper.exe")
+numpad0::Send +{Insert}
+numpad1::Send +{End}
+numpad2::Send +{Down}
+numpad3::Send +{PageDown}
+numpad4::Send +{Left}
+numpad5::Send {Clear}
+numpad6::Send +{Right}
+numpad7::Send +{Home}
+numpad8::Send +{Up}
+numpad9::Send +{PageUp}
return
Этот скрипт позволяет использовать комбинации Shift и Numpad в Reaper, устанавливая соотношение между нажатиями и соответствующими действиями.
3. Редактирование конфигурации приложений
Обратите внимание, что в некоторых приложениях, таких как Reaper, возможно редактирование конфигурационного файла для назначения горячих клавиш через текстовый формат:
- Экспортируйте настройки горячих клавиш в текстовый файл.
- Внесите изменения в файл, добавив нужные комбинации, например,
KEY 5 32803 1012 0
для сочетания Shift + Numpad.
Примечание
Хотя вышеуказанные методы могут помочь — это не является полной защитой от проблем с совместимостью в Windows. Советуем принимать во внимание специфику программного обеспечения. Иногда может иметь смысл использовать сторонние устройства или операционные системы, которые изначально более адаптированы к нуждам пользователя.
Заключение
Удалить возможность клавиши Shift отменять состояние NumLock в Windows — задача не из простых, требующая немного креативности и технических навыков. Описанные методы помогут в решении этой проблемы, обеспечивая более гладкость взаимодействия между приложениями. Если у вас есть дополнительные предложения или решения, пожалуйста, поделитесь ими для дальнейшего изучения вопроса.