AutoHotkey - самое простое решение для этого. Мне потребовалось некоторое время, чтобы найти правильное сопоставление для моей клавиатуры, и я подумал, что это хорошее место, чтобы поделиться им. (Спасибо, Илан, за показ комбинации CTRL и SHIFT.)
В моем ноутбуке Dell Precision 7510 нет выделенных кнопок «Домой» и «Конец», но есть выделенные кнопки PrtScr и «Вставить» (как здесь). Поскольку я обычно использую внешнюю клавиатуру и регулярно пользуюсь клавишей Print Screen, мне нужно было переключать эту кнопку между Print Screen и Home при использовании клавиатуры ноутбука. Основываясь на примере из Iian, я настроил Win+Print Screen для переключения переопределения.
; My Dell Precision 7510 laptop does not have dedicated Home and End buttons
; but it does have dedicated PrtScr and Insert buttons.
; This script will override those buttons as Home and End.
; Idea from: http://superuser.com/questions/412761/mini-keyboard-has-no-home-end-keys-how-to-type-them
; Use the Win+Printscreen key to toggle these hotkeys. They are only needed when using the laptop keyboard.
; Note that this script should be loaded after Snagit or other software that overrides the Print Screen key or those programs may fail to map properly.
#Printscreen::
T:=!T
if(T) ; If it's on
{
;--- Map the Printscreen and Insert keys ---
Hotkey, Printscreen, Printscreen, On
Hotkey, Insert, Insert, On
SoundBeep 423, 100
SoundBeep 423, 150
ToolTip, Laptop PrtScr/Insert remapped to Home/End...
Sleep, 1500
ToolTip
;=== Home ===
; Note that MsgBox, ToolTip, and SoundBeep lines are not executing after the first key is mapped. Hmm. BS 7/27/2016
; Home = start of line
Printscreen::Send {Home}
; Ctrl-Home = start of document
^Printscreen::Send {LCtrl down}{Home}{LCtrl up}
; Shift-Home = select to start of line
+Printscreen::Send {LShift down}{Home}{LShift up}
; Ctrl-Shift-Home = select to start of document
^+Printscreen::Send {LCtrl down}{LShift down}{Home}{LShift up}{LCtrl up}
;=== End ===
; End = end of line
Insert::Send {End}
; Ctrl-End = end of document
^Insert::Send {LCtrl down}{End}{LCtrl up}
; Shift-End = select to end of line
+Insert::Send {LShift down}{End}{LShift up}
; Ctrl-Shift-End = select to start of document
^+Insert::Send {LCtrl down}{LShift down}{End}{LShift up}{LCtrl up}
}
else
{
;--- Disable the Printscreen and Insert key mapping ---
Hotkey, Printscreen, Off
Hotkey, Insert, Off
SoundBeep 303, 150
ToolTip, Laptop PrtScr/Insert remapping disabled...
Sleep, 1500
ToolTip
}
Return