Тема: AHK: передать нажатие Ctrl-Home и Ctrl-Shift-Home обходным путём
Приветствую участников форума и прошу помочь решить проблему с клавиатурой ноута Lenovo M30-70.
Суть: по умолчанию у всех Lenovo ряд кнопок F1-F12 работает через Fn, но их можно вернуть к нормальному состоянию через BIOS. Но у этого ноута такое извращение касается и ряда клавиш Home, PgUp, PgDn, End. И самое поганое, что с «противоходом», т.е. либо у тебя нормальная F1, либо Home.
Но это еще полбеды. Если у ноута переключить BIOS в режим с нормальным функционированием F1-F12, то перестаёт работать сочетание клавиш Ctrl-Home и Ctrl-Shift-Home! Вот такая засада: или жить с кривыми F1-F12, но нормальными Home-End, или нормальные F1-F12, но кривые Home-End и с неработающим Ctrl-Home.
Думал проблемы в Win8.1, загрузился с LiveCD в WinXP и Win7 – то же самое. Похоже проблема в BIOS. В поддержку Lenovo отписался, но ничего конкретного пока от них не дождался. Ноут в целом устраивает, поэтому хочу попробовать решить проблему через AutoHotKey.
Может всё-таки есть варианты полноценного исправления нажатия Ctrl-Home и Ctrl-Shift-Home? Через какие-нибудь условия например, или черёз жесткий переход к первой строке (типа GoTo)? В таких сложностях я, увы не силён.
Прикладываю свой скрипт и отсканированные коды всех вариантов нажатия клавиш. Судя по сканам, с Home какой-то бред: то она отзывается как Home, то как CtrlBreak, а если она нажата вместе с Ctrl и Fn - то вообще никак.
; key codes:
; ^ Ctrl, + Shift, ! Alt
; 45 Pause, 146 CtrlBreak, 46 ScrollLock, 152 Insert, 147 Home, 14F End, 149 PgUp, 151 PgDn
SC045 :: Send {Home}
^SC045 :: Send ^{Home}
+SC045 :: Send +{Home}
^+SC045 :: Send ^+{Home}
SC146 :: Send {End}
^SC146 :: Send ^{End}
+SC146 :: Send +{End}
^+SC146 :: Send ^+{End}
SC046 :: Send {PgUp}
^SC046 :: Send ^{PgUp}
+SC046 :: Send +{PgUp}
^+SC046 :: Send ^+{PgUp}
SC152 :: Send {PgDn}
^SC152 :: Send ^{PgDn}
+SC152 :: Send +{PgDn}
^+SC152 :: Send ^+{PgDn}
; проблема: Ctrl-Home работает также как Ctrl-End; Ctrl-Shift-Home как Ctrl-Shift-End Последовательное нажатие клавиш Home, End, PgUp, PgDn
-------------------------------------------------------------------------------------------------------------
13 045 d 5.08 Pause
13 045 u 0.01 Pause
03 146 d 1.00 CtrlBreak
03 146 u 0.00 CtrlBreak
91 046 d 0.81 ScrollLock
91 046 u 0.22 ScrollLock
2D 152 d 0.58 Insert
2D 152 u 0.22 Insert
Последовательное нажатие клавиш Home, End, PgUp, PgDn + Fn
-------------------------------------------------------------------------------------------------------------
24 147 d 8.69 Home
24 147 u 0.14 Home
23 14F d 0.48 End
23 14F u 0.16 End
21 149 d 0.45 PgUp
21 149 u 0.16 PgUp
22 151 d 0.51 PgDn
22 151 u 0.14 PgDn
Последовательное нажатие клавиш Home, End, PgUp, PgDn + Ctrl
-------------------------------------------------------------------------------------------------------------
A2 01D d 4.34 LControl
03 146 d 0.20 CtrlBreak
03 146 u 0.02 CtrlBreak
03 146 d 0.28 CtrlBreak
03 146 u 0.00 CtrlBreak
03 046 d 0.31 CtrlBreak
03 046 u 0.09 CtrlBreak
2D 152 d 0.22 Insert
2D 152 u 0.08 Insert
A2 01D u 0.06 LControl
Последовательное нажатие клавиш Home, End, PgUp, PgDn + Ctrl Fn
-------------------------------------------------------------------------------------------------------------
A2 01D d 8.16 LControl
23 14F d 0.73 End
23 14F u 0.11 End
21 149 d 0.31 PgUp
21 149 u 0.11 PgUp
22 151 d 0.31 PgDn
22 151 u 0.09 PgDn
A2 01D u 0.14 LControl
Последовательное нажатие клавиш Home, End, PgUp, PgDn + Shift
-------------------------------------------------------------------------------------------------------------
A0 02A d 12.53 LShift
13 045 d 0.00 Pause
13 045 u 0.00 Pause
03 146 d 0.31 CtrlBreak
03 146 u 0.02 CtrlBreak
91 046 d 0.31 ScrollLock
91 046 u 0.09 ScrollLock
2D 152 d 0.22 Insert
2D 152 u 0.08 Insert
A0 02A u 0.09 LShift
Последовательное нажатие клавиш Home, End, PgUp, PgDn + Shift Fn
-------------------------------------------------------------------------------------------------------------
A0 02A d 8.33 LShift
24 147 d 0.20 Home
24 147 u 0.09 Home
23 14F d 0.22 End
23 14F u 0.08 End
21 149 d 0.25 PgUp
21 149 u 0.08 PgUp
22 151 d 0.25 PgDn
22 151 u 0.08 PgDn
A0 02A u 0.14 LShift
Последовательное нажатие клавиш Home, End, PgUp, PgDn + Shift Ctrl
-------------------------------------------------------------------------------------------------------------
A2 01D d 5.41 LControl
A0 02A d 0.01 LShift
03 146 d 0.23 CtrlBreak
03 146 u 0.01 CtrlBreak
03 146 d 0.34 CtrlBreak
03 146 u 0.00 CtrlBreak
91 046 d 0.34 ScrollLock
91 046 u 0.09 ScrollLock
2D 152 d 0.23 Insert
2D 152 u 0.08 Insert
A0 02A u 0.06 LShift
A2 01D u 0.01 LControl
Последовательное нажатие клавиш Home, End, PgUp, PgDn + Shift Ctrl Fn
-------------------------------------------------------------------------------------------------------------
A2 01D d 4.19 LControl
A0 02A d 0.03 LShift
23 14F d 0.47 End
23 14F u 0.08 End
21 149 d 0.26 PgUp
21 149 u 0.09 PgUp
22 151 d 0.23 PgDn
22 151 u 0.08 PgDn
A0 02A u 0.08 LShift
A2 01D u 0.00 LControl 

