Чтение онлайн

на главную

Жанры

1001 совет по обустройству компьютера
Шрифт:

Рассмотрим на примерах эти действия, а потом расскажем, как это осуществляется в общем случае – для любой клавиши.

Сначала нужно в разделе реестра HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\ Control\Keyboard Layout (не путать с Keyboard Layouts!) создать новый двоичный параметр (в меню так и будет написано – двоичный параметр), озаглавив его Scancode Map (с пробелом!), и присвоить ему значение по следующему образцу:

00 00 00 00 00 00 00 00

03 00 00 00 00 00 5C E0

00 00 5D E0 00 00 00 00

Эта строка отключит клавишу с флажком Windows и соседнюю клавишу вызова всплывающего меню. Разберемся в том, что здесь написано.

Сначала должно идти 8 пар нулей подряд. Затем идет число (с ведущим нулем) – в данном случае 03, которое означает количество отслеживаемых клавиш плюс

единица (т. е. в этом примере отслеживаем две клавиши). После него всегда должно идти три пары нулей (дополняя до 4-х пар цифр). Заканчиваться запись должна всегда четверкой пар нулей. А вот между ними мы должны записать столько четверок парных чисел, сколько мы предусмотрели клавиш для отслеживания – в данном случае две. В них записываются так называемые скан-коды клавиш, которые желаем отключить. В табл. 12.2 приведены коды тех клавиш, которые целесообразно рассматривать в плане кандидатов на отключение или замену (см. далее).

Эти коды записываются в последние две пары каждой четверки пар чисел, первые две пары опять же нули – как вы и видите в образце. Таким образом, приведенная в качестве примера строка отключит нам правую клавишу <Win> (с флажком Windows) (00 00 5C E0) и соседнюю клавишу <PopUp Menu> вызова всплывающего меню (00 00 5D E0).

Таблица 12.2. Скан-коды клавиш

* Официальное название этой клавиши – <Application>

Что такое скан-коды и где их взять

Скан-код – это то число, которое выдает клавиатура при нажатии определенной клавиши. Скан-коды не следует путать с виртуальными кодами клавиш – последние формируются уже на уровне BIOS и Windows и в дальнейшем определяют коды символов, те самые, что, например, образуют содержимое текстовых документов. В большинстве случаев они никак между собой не связаны. Например, виртуальный код клавиши «пробел» – 32 (совпадает с кодом символа «пробел» в однобайтных кодировках), а скан-код ее – 57 (в HEX-форме это будет 20 и 39 соответственно). Заметьте, что виртуальные коды не эквивалентны символьным – чтобы превратить виртуальный код в код символа, надо еще учесть языковую раскладку, состояние клавиш <Shift>, <Caps Lock> и, между прочим, используемую систему кодировок – однобайтную или Unicode. Все это проделывает системный драйвер клавиатуры еще до того, как событие нажатия попадает в очередь Windows-сообщений. Некоторые клавиши (<Win> или <Caps Lock>) вообще ни с какими символами не связаны и в указанную очередь не попадают. Поэтому для полной подмены функциональности некоей клавиши подменить виртуальные коды (что вообще-то может сделать любой, владеющий навыками программирования в Delphi или Visual C++) недостаточно – надо действовать на более глубоком уровне, манипулируя именно скан-кодами. Это и позволяет осуществить параметр Scancode Map в реестре Windows.

Для наших целей скан-коды, как вы можете догадаться по приведенной таблице, должны быть представлены в шестнадцатеричной (HEX), а не десятичной форме. Таблицы виртуальных кодов и кодов символов обычно прилагается к любому пособию по Windows-программированию, а вот полную таблицу скан-кодов разыскать непросто. Одна из таких таблиц находится на сайте «Электронная библиотека» по ссылкеОна немного неудачно составлена – так называемые расширенные клавиши (это те, у которых второй байт в нашей таблице равен E0) там показаны добавлением лишнего разряда, равного 1. То есть выбрав из колонки HEX скан-код, например, 11С (клавиша <Enter> на цифровой клавиатуре), его надо для наших целей переписать как 1С E0. Официальный полный набор скан-кодов, включая и клавиши управления питанием (но исключая дополнительные медиаклавиши), можно скачать с сайта Microsoft. Ссылка на документ очень длинная, потому просто наберите в поиске на microsoft.com слова Keyboard Scan Code Specification», и получите искомое – правда, по-английски. При изучении этого документа учтите, что нас интересует только один набор кодов: Scan Code Set 1.

Разумеется, готовить такую строку чисел следует заранее и внимательно пересчитать все пары перед тем, как вводить ее в реестр. Но при вводе вы увидите,

что вам помогут не наделать ошибок. Ввод значения двоичного числа осуществляется вручную (рис. 12.11), но несмотря на непривычный вид этого редактора, вы быстро убедитесь, что работать с ним очень удобно. В частности, не возникает проблем при подсчете вводимых пар – они автоматически группируются по восемь в строке. Не забудьте перезагрузить ПК после окончательного ввода значений параметра.

Рис. 12.11. Ввод значений двоичного параметра

Для не просто отмены, а еще и переназначения, придется немного усложнить запись – первые две пары нулей в тех четверках, что содержат коды отключаемых клавиш, заменить на те коды, которые должны, по вашему мнению, работать. Например, значение параметра Scancode Map, равное

00 00 00 00 00 00 00 00

03 00 00 00 00 00 5C E0

1D E0 5D E0 00 00 00 00

сделает так, что правая клавиша с флажком Windows отключится, а <PopUp> будет дублировать правый <Ctrl>, т. е. ближайшую к ней клавишу. Именно это значение Scancode Map приведено в качестве примера на рис. 12.11.

Покажем, как справиться с <Caps Lock>. Эксперименты показывают, что с ней не все однозначно – в частности, попытка простого отключения может не дать результатов. Но я приведу значение параметра Scancode Map, которое гарантировано отключает <Caps Lock> – ее функция меняется на функцию <Shift> (правого, но на практике это неважно), а <PopUp> здесь, как и ранее, дублирует правый <Ctrl>:

00 00 00 00 00 00 00 00

03 00 00 00 1D E0 5D E0

2A 00 3A 00 00 00 00 00

На прилагаемом диске в папке Registry находится файл key.reg, при запуске которого и подтверждении того, что вы действительно хотите внести изменения в реестр, автоматически создастся параметр Scancode Map с таким значением. Если не хотите трогать ничего, кроме <Caps Lock>, то отредактируйте это значение следующим образом: 03 замените на 02 и замените четыре байта с ненулевым значением во второй строке нулями.

Ничего фатального в результате этих ваших экспериментов произойти не должно – если вы в чем-то ошиблись или решили оставить все как есть, просто удалите из реестра параметр Scancode Map и перезагрузите компьютер. Или верните систему в исходное состояние с помощью точек восстановления.

Отключение клавиши <Alt>, как входа в меню

К сожалению, справиться с клавишей <Alt> как системной для Windows (вызова главного меню), сохранив ее функциональность как клавиши-модификатора, через реестр не получится – она вообще перестанет реагировать на нажатие. Потому, раз уж мы занялись клавишами, заодно укажу средство с ней справиться, хотя оно и не имеет отношения к реестру. На диске к книге имеется папка AltSpy, в которой размещена программа того же имени. Скопируйте всю папку (она содержит три файла) на жесткий диск и запустите файл с расширением js (сценарий на языке Java Script). Чтобы не запускать руками каждый раз, его следует включить в автозагрузку (см. разд. 10.1.3 «Автозагрузка»). Спустя 10 секунд после запуска сценария AltSpy создаст в области уведомлений кареглазый значок, у которого окажется единственный пункт контекстного меню – Закрыть. Пауза нужна для того, чтобы AltSpy гарантированно оказался самым последним при запуске и перекрыл другие службы. После этого <Alt> перестанет вызывать главное меню, зато сохранит свою основную функциональность. Возможность вызвать главное меню у вас при этом не пропадает – эту функцию по-прежнему выполняет клавиша <F10>, зато теперь куда труднее вызвать его случайно и тем самым сбить фокус ввода с нужного элемента.

12.8. Синхронизация данных

Задача синхронизации данных на разных компьютерах очень похожа на задачу создания резервной копии (см. разд. 11.2 «Создание резервных копий системы»), но все-таки не совпадает с ней. В случае создания резервной копии мы стремимся лишь обеспечить идентичность копии последнему по времени оригиналу, в случае синхронизации задача шире – она может, например, включать двустороннее изменение файлов, если в копии оказались новые или измененные файлы.

Поделиться:
Популярные книги

Кодекс Крови. Книга Х

Борзых М.
10. РОС: Кодекс Крови
Фантастика:
фэнтези
юмористическое фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Крови. Книга Х

Легат

Прокофьев Роман Юрьевич
6. Стеллар
Фантастика:
боевая фантастика
рпг
6.73
рейтинг книги
Легат

Защитник. Второй пояс

Игнатов Михаил Павлович
10. Путь
Фантастика:
фэнтези
5.25
рейтинг книги
Защитник. Второй пояс

Счастье быть нужным

Арниева Юлия
Любовные романы:
любовно-фантастические романы
5.25
рейтинг книги
Счастье быть нужным

Огненный князь 3

Машуков Тимур
3. Багряный восход
Фантастика:
фэнтези
боевая фантастика
попаданцы
5.00
рейтинг книги
Огненный князь 3

Гром над Академией Часть 3

Машуков Тимур
4. Гром над миром
Фантастика:
фэнтези
5.25
рейтинг книги
Гром над Академией Часть 3

Не грози Дубровскому! Том III

Панарин Антон
3. РОС: Не грози Дубровскому!
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Не грози Дубровскому! Том III

Не отпускаю

Шагаева Наталья
Любовные романы:
современные любовные романы
эро литература
8.44
рейтинг книги
Не отпускаю

Флеш Рояль

Тоцка Тала
Детективы:
триллеры
7.11
рейтинг книги
Флеш Рояль

Приручитель женщин-монстров. Том 4

Дорничев Дмитрий
4. Покемоны? Какие покемоны?
Фантастика:
юмористическое фэнтези
аниме
5.00
рейтинг книги
Приручитель женщин-монстров. Том 4

Кодекс Охотника. Книга XVIII

Винокуров Юрий
18. Кодекс Охотника
Фантастика:
фэнтези
попаданцы
аниме
5.00
рейтинг книги
Кодекс Охотника. Книга XVIII

Польская партия

Ланцов Михаил Алексеевич
3. Фрунзе
Фантастика:
попаданцы
альтернативная история
5.25
рейтинг книги
Польская партия

Курсант: Назад в СССР 7

Дамиров Рафаэль
7. Курсант
Фантастика:
попаданцы
альтернативная история
5.00
рейтинг книги
Курсант: Назад в СССР 7

Белые погоны

Лисина Александра
3. Гибрид
Фантастика:
фэнтези
попаданцы
технофэнтези
аниме
5.00
рейтинг книги
Белые погоны