Перейти на главную страничку сайта (список статей, файлы для скачивания)

ФОРУМ (здесь можно обсудить эту статью, а также саму программу AutoHotkey и проблемы её использования)

Проект перевода документации AutoHotkey: перечень переведённых статей и статей в работе.

Оригинал статьи в AutoHotkey.chm: "Overriding or Disabling Hotkeys", по ссылке из статьи "Hotkeys (Mouse, Joystick and Keyboard Shortcuts)", в содержании - "Hotkeys".

Ник переводчика: semechka.

Настоящее имя переводчика: Светлана Семёнова, г.Реутов Московской обл.

Замещение и блокировка горячих клавиш

Вы можете заблокировать все встроенные в Windows горячие клавиши, за исключением Win+L и Win+U, внеся следующее изменение в системный реестр (это должно работать во всех операционных системах, при этом, возможно, потребуется перезагрузка):

HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Policies\Explorer
NoWinKeys REG_DWORD 0x00000001 (1)

Если вы хотите сделать больше, чем просто заблокировать все горячие клавиши, читайте далее. Обратите внимание, что большинство нижеприведенных примеров не поддерживаются в Windows Me/98/95.

Горячие клавиши, принадлежащие другому приложению, могут быть замещены или заблокированы просто путем присвоения им какой-либо операции в скрипте. Наиболее общим применением этой возможности является изменение горячих клавиш, встроенных в Windows. Например, если вы хотите, чтобы Win+E (быстрая клавиша, запускающая Windows Explorer) выполняла какую-либо другую операцию, используйте:

#e::
MsgBox, В данный момент эта горячая клавиша принадлежит скрипту
return

В следующем примере горячая клавиша Win+R, которая используется для открытия окна RUN (Выполнить), полностью блокируется:

#r::return

Аналогично, для того, чтобы заблокировать обе клавиши Windows, используйте:

Lwin::return
Rwin::return

Для того чтобы заблокировать или изменить неглобальную горячую клавишу приложения (т.е. быструю клавишу, которая работает только тогда, когда окно этого приложения активно), примите во внимание следующий пример, который блокирует Control+P (Print) только для блокнота, оставляя клавишу в действии для всех остальных типов окон:

$^p::
SetTitleMatchMode, 2
IfWinActive, - Блокнот
	Return
Send, ^p
return

В вышеприведенном примере префикс $ нужен для того, чтобы горячая клавиша могла посылать "сама себя" без самоактивации (что привело бы, в противном случае, к запуску предупреждающего диалога в бесконечном цикле).

Вы можете воспользоваться любым из вышеприведенных примеров, копируя их в новый текстовой файл, например, "Override.ahk", и затем запуская этот файл.

Перейти на главную страничку сайта (список статей, файлы для скачивания)

© 2007 http://www.script-coding.com При любом использовании материалов сайта обязательна ссылка на него как на источник информации, а также сохранение целостности и авторства материалов.