Что такое скан-код клавиши "Пауза / Разрыв"?

Я скачиваю "SharpKeys.exe" отсюда. Это работает хорошо. Но я хочу изменить "Пауза / Прерывание" на другое, это приложение не может правильно распознать этот ключ. Кто-нибудь знает скан-код? Спасибо

5 ответов

Решение

Пауза - это особая нетипичная клавиша с необычным кодом сканирования (E1 1D 45 E1 9D C5). Это слишком долго, чтобы переназначить его с помощью SharpKeys (или любой программы, которая использует реестр для сканирования повторных отображений кода, поскольку эта функция ограничена 2-байтовыми кодами сканирования). Если вы попытаетесь переназначить его, вы получите только первые два байта и в итоге получите вместо этого переназначение клавиши Num Lock. Это ломает всякие веселые способы.

Вам нужно будет использовать другую программу, чтобы сделать переназначение, возможно, что-то вроде AutoHotKey. Но я не уверен, что это действительно сработает, учитывая, насколько особенным является этот ключ.

Непонятно, почему программист может захотеть переназначить Pause/Break. Это очень полезная клавиша, которую часто мучительно не хватает на клавиатурах ноутбуков, где единственный вариант - переназначить другую клавишу на Ctrl+Break (код сканирования). E0 46). Это возвращает вам хотя бы часть функций реальной клавиши Pause/Break.

Я безупречно переназначил клавишу Pause / Break, используя только SharpKeys! Вот как я это сделал:

Я также загрузил SharpKeys (который, кстати, потрясающий), и сначала также не смог изменить клавишу Pause / Break на другую клавишу (в моем случае я хочу изменить на Media:Play/Pause).

После небольшого исследования нашел эту страницу блога: https://www.neox.net/w/2008/02/13/keyboard-remap-pause-break-key-as-del-key/
Там парень смог чтобы переназначить ключ, используя только первые 2 байта последовательности.E1 а также 1D. (он также возился сDel ключ, который не нужен)

Поскольку SharpKeys уже является отличным инструментом, я просто загружаю его код и добавляю в таблицу карты ключей этот код. E1 1D и смог переназначить его без каких-либо дополнительных изменений.


Короче говоря:

Я скачал исходный код SharpKeys и добавил в его код файл Dialog_Main.cs, метод BuildParseTables(), линия m_hashKeys.Add("E1_1D", "-by Vitox: Pause/Break");

После этого я смог безупречно переназначить клавишу Pause / Break.


Ресурсы:


Исходный код SharpKeys после изменений


Интерфейс SharpKeys, после мода


SharpKeys: https://github.com/randyrants/sharpkeys
, кстати, Рэнди Рэнтс, это отличный инструмент. Спасибо!


примечание: клавиатура, на которой работал этот мод, была Logitech G413, а ОС была Windows 7

Вы должны отредактировать: E11D для удаления и E046 для удаления

Есть файл для загрузки:https://www.neox.net/w/2008/02/13/keyboard-remap-pause-break-key-as-del-key/

Я знаю, что это уже бывшая тема, но, может быть, у кого-то есть MSI GL75 с бессмысленной клавиатурой вроде меня:)

Довольные люди, которым нравится этот инструмент, но, чтобы было ясно, Пауза / Перерыв - это особая клавиша, которую нелегко переназначить. Технология Windows, которая перераспределяет клавиши, поддерживает только двухбайтовые скан-коды. Некоторые более новые ключи трехбайтовые, и они упали на пол. Пауза / разрыв - это шестнадцатеричный скан-код.

Переназначив первую часть, вы, возможно, успешно переназначили Паузу / Перерыв, но вы также переназначаете все остальные клавиши, которые начинаются с E1 1Dтакже. На ваших клавиатурах это может не иметь значения, но я бы не рекомендовал пробовать это без плана резервного копирования.

Я также настоятельно рекомендую Microsoft PowerToys для переназначения измененных клавиш (например, Ctrl+C) или странных клавиш, которые SharpKeys не может сопоставить.

HTH!

Информация от @Vitox действительно полезна. Тем не менее, сообщество разработчиков визуального кода довольно обширно, и если вы не хотите самостоятельно компилировать модифицированную версию, у меня есть простое решение.

Код сканирования для клавиши паузы/паузы: (E1 1D 45 E1 9D C5). Простой подход состоит в том, чтобы сделать конфигурацию с помощью Sharpkeys и переназначитьSpecial: Hanja Key (E0 F1)к желаемому ключу, скажемF11 (00 57). Откройте реестр, перейдите к[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Keyboard Layout], и экспортируйте все содержимое пути в файл .reg. Откройте файл .reg, найдитеf1,e0сегмент (вы можете искать ",f1,e0,"), измените f1 на 1d и e0 на e1, сохраните и импортируйте в реестр. Тогда фокус сработает после перезагрузки.

Вы также увидите конфигурацию в Sharpkeys. Однако экспортировать их со стороны SharpKeys невозможно. Sharpkeys будет игнорировать эту пару (E1_1D)-(00 57), которая изначально не встроена.

Другие вопросы по тегам