169 похожих чатов

И еще один вопрос. Купил давно BT Keyboard от Микрософт.

Эти извращенцы убрали из нее несколько привычных клавиш, типа NumLock, зато добавили кучу таких, которых в нормальной клаве нет -- например "смайлик" или "замок", которая сразу над Backspace -- очень удобно, палец промахнулся и комп сразу залочен...

Как найти коды этих нестандартных клавиш?

3 ответов

27 просмотров

Вот попробуй это GPT накидал Для того чтобы определить коды нестандартных клавиш на вашей Bluetooth клавиатуре, можно воспользоваться утилитой xev на Linux или специальными инструментами на Windows. Вот несколько способов, которые могут помочь: ### На Windows 1. Использование PowerShell: PowerShell позволяет отслеживать события клавиатуры с помощью специальных команд. Вот пример скрипта на PowerShell, который поможет вам определить коды клавиш: Add-Type @" using System; using System.Windows.Forms; public class KeyboardListener { public static void Main() { Form f = new Form(); f.KeyPreview = true; f.KeyDown += (sender, e) => { Console.WriteLine($"Key: {e.KeyCode}, Code: {(int)e.KeyCode}"); if (e.KeyCode == Keys.Escape) { Application.Exit(); } }; Application.Run(f); } } "@ [KeyboardListener]::Main() Этот скрипт откроет окно, в котором при нажатии клавиш будет отображаться их код. Для выхода из программы нажмите Esc. 2. Использование сторонних программ: Существует множество программ для отслеживания нажатий клавиш, например, [SharpKeys](https://github.com/randyrants/sharpkeys) или [KeyTweak](http://web.archive.org/web/20190714082253/http://webpages.charter.net/krumsick/). Они позволяют не только узнать коды клавиш, но и переназначить их. ### На Linux 1. Использование утилиты xev: В Linux можно использовать утилиту xev для определения кодов клавиш. sudo apt-get install x11-utils xev После запуска xev откроется окно, в котором при нажатии клавиш будет отображаться информация о событии, включая код клавиши. Выглядеть это будет примерно так: KeyPress event, serial 37, synthetic NO, window 0x4e00001, root 0x10e, subw 0x0, time 42440561, (110,56), root:(1136,444), state 0x0, keycode 38 (keysym 0x61, a), same_screen YES, XLookupString gives 1 bytes: (61) "a" XmbLookupString gives 1 bytes: (61) "a" XFilterEvent returns: False Здесь keycode 38 соответствует клавише a. ### Заключение После того как вы узнаете коды нестандартных клавиш, вы можете использовать их для переназначения или отключения нежелательных клавиш. Для этого можно использовать программы вроде SharpKeys на Windows или xmodmap на Linux. Если у вас будут вопросы по конкретным клавишам или потребуется помощь в настройке, пожалуйста, дайте знать!

Стикер

В Windows можно использовать AHK v2 https://www.autohotkey.com/docs/v2/KeyList.htm Создай скриптовый файл; Запусти скрипт. В трее винды появится иконка. По ней правый клик и там где-то будет окно с историей нажатых клавиш. Увеличить или отключить историю кодов можно командой https://www.autohotkey.com/docs/v2/lib/KeyHistory.htm

Похожие вопросы

Обсуждают сегодня

а через ESC-код ?
Alexey Kulakov
29
30500 за редактор? )
Владимир
47
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
13
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
program test; {$mode delphi} procedure proc(v: int32); overload; begin end; procedure proc(v: int64); overload; begin end; var x: uint64; begin proc(x); end. Уж не знаю...
notme
6
Как передать управляющий символ в открытую через CreateProcess консоль? Собсна, есть процедура: procedure TRedirectThread.WriteData(Data: OEMString); var Written: Cardinal;...
Serjone
6
вы делали что-то подобное и как? может есть либы готовые? увидел картинку нокода, где всё линиями соединено и стало интересно попробовать то же в ddl на lua сделать. решил с ч...
Victor
8
Ребят в СИ можно реализовать ООП?
Николай
33
Подскажите пожалуйста, как в CustomDrawCell(Sender: TcxCustomGridTableView; ACanvas: TcxCanvas; AViewInfo: TcxGridTableDataCellViewInfo; var ADone: Boolean); получить наз...
A Z
7
Карта сайта