Отключение клавиши Shift от переопределения Numlock (или предотвращение переопределения клавиши Shift для клавиш числовой клавиатуры и использование Shift в качестве модификатора для клавиш 0-9 на числовой клавиатуре)

Вопрос или проблема

Если кто-то знает, как временно отключить/переопределить функциональность клавиши 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 — задача не из простых, требующая немного креативности и технических навыков. Описанные методы помогут в решении этой проблемы, обеспечивая более гладкость взаимодействия между приложениями. Если у вас есть дополнительные предложения или решения, пожалуйста, поделитесь ими для дальнейшего изучения вопроса.

Оцените материал
Добавить комментарий

Капча загружается...