1

Тема: AHK: "Левая" клавиатура для правши

Автор скрипта - Steve Key.

При нажатой клавише Alt кнопки 123qweasdzxc, а также ~4rfv, Esc и CapsLock работают как "перевернутый" NumPad "для левой руки" ("телефонная" раскладка рулит!).

Мне по работе часто бывает нужно ввести 2-3-несколько цифр, притом, что правая рука занята мышкой (я правша). Отрывать руку, включать NumLock, набирать цифры, выключать NumLock (у меня он постоянно выключен, я привык к навигации на NumPad'е в стиле IBM-XT). Клавиатуры "для левшей" и отдельные NumPad'ы неудобны, поскольку являются просто "перенесенными" частями клавиатуры справа налево, без адаптации (!) под левую руку. Так был задуман этот скрипт.

#NoTrayIcon
#NoEnv         ; стартовая мантра
SetKeyDelay 0  ; Данная команда задает более быструю эмуляцию нажатий клавиш, чем определено по умолчанию.
Process Priority,,High
SendMode Input
#UseHook, On   ; Предосторожность на случай, если клавиша должна будет
               ; посылать саму себя. Делает то же, что префикс $, только
               ; для всех гор. клавиш, которые ниже.
Critical

; При нажатой клавише Alt кнопки 123qweasdzxc, а также ~4rfv, Esc и CapsLock,
; работают как "перевернутый" NumPad "для левой руки" ("телефонная" раскладка рулит!).

; Мне по работе часто бывает нужно ввести 2-3-несколько цифр, притом,
; что правая рука занята мышкой (я правша). Отрывать руку, включать NumLock,
; набирать цифры, ВЫКЛЮЧАТЬ NumLock (у меня он постоянно выключен, я привык
; к навигации на NumPad'е в стиле IBM-XT). Клавиатуры "для левшей" и отдельные
; NumPad'ы неудобны, поскольку являются просто "перенесенными" частями клавиатуры
; справа налево, БЕЗ АДАПТАЦИИ (!) под левую руку. Так был задуман этот скрипт.

; Безусловно, написание скрипта было бы невозможно без помощи сайта (форума)
; http://forum.script-coding.com/index.php, и его активных участников!

; (C)2008 by Steve Key (Steve KEY Laboratory) e-mail: Steve_KEY@mail.ru

<!vk31:: send 1        ; Alt+ 1 -> 1
<!vk32:: send 2        ; Alt+ 2 -> 2
<!vk33:: send 3        ; Alt+ 3 -> 3
<!vk51:: send 4        ; Alt+ q -> 4
<!vk57:: send 5        ; Alt+ w -> 5
<!vk45:: send 6        ; Alt+ e -> 6
<!vk41:: send 7        ; Alt+ a -> 7
<!vk53:: send 8        ; Alt+ s -> 8
<!vk44:: send 9        ; Alt+ d -> 9
<!vk43:: send 0        ; Alt+ c -> 0
<!vk58:: send 000      ; Alt+ x -> три нуля для тысяч
<!vk5A:: send {ASC 44} ; Alt+ z -> , (для отделения десятичной дроби)

<!vkC0:: send {ASC 37} ; Alt+ ` -> %
<!vk34:: send {ASC 45} ; Alt+ 4 -> -
<!vk52:: send {ASC 43} ; Alt+ r -> +
<!vk46:: send {ASC 47} ; Alt+ f -> /
<!vk56:: send {ASC 42} ; Alt+ v -> *

<!Esc:: send {BS}      ; Alt+ Esc -> BackSpace

<!CapsLock:: send {Enter} ; Alt+ CapsLock -> Enter

#UseHook, Off
Предложения в русском языке начинаются с большой буквы и заканчиваются точкой.
В названии ветки всегда должен быть указан язык программирования или среда исполнения скрипта, если это возможно.

2

Re: AHK: "Левая" клавиатура для правши

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

;;#NoTrayIcon
FileInstall, keybAlt.jpg, keybAlt.jpg

#NoEnv         ; стартовая мантра
#SingleInstance,Force
#WinActivateForce

;SetKeyDelay, 10, 10 ; Для надежности задержка увеличена.
SetKeyDelay, -1, 0
Process Priority,,High
SendMode Input

applicationname=AltLeftNum

;Моё меню
Menu,Tray,DeleteAll
Menu,Tray,NoStandard
Menu, Tray, Add, &Alt_Left_Num v1.5.15 Подсказка, Helpus
Menu,Tray,Add,
;Menu,Tray,Add,&About...,ABOUT
Menu,Tray,Add,E&xit,EXIT
Menu, Tray, Tip , NumPad слева! (C)2010 by Steve Key

#UseHook, On   ; Предосторожность на случай, если клавиша должна будет
               ; посылать саму себя. Делает то же, что префикс $, только
               ; для всех гор. клавиш, которые ниже.
Critical

; При нажатой клавише Alt кнопки 123qweasdzxc, а также ~4rfv, Esc и CapsLock,
; работают как "перевернутый" NumPad "для левой руки" ("телефонная" раскладка рулит!).

; В версии 1.1 добавлены скобки на клавишах 5 и t.
; В версии 1.2 изменены функции клавиш Esc и CapsLock.
; В версии 1.3 убрано 000 и поставлена . (точка)
; В версии 1.5 цифры заданы ASC-кодами, а то на моей новой раскладке вводились значки...
; также добавлена подсказка, как правильно нажимать кнопки.

; Мне по работе часто бывает нужно ввести 2-3-несколько цифр, притом,
; что правая рука занята мышкой (я правша). Отрывать руку, включать NumLock,
; набирать цифры, ВЫКЛЮЧАТЬ NumLock (у меня он постоянно выключен, я привык
; к навигации на NumPad'е в стиле IBM-XT). Клавиатуры "для левшей" и отдельные
; NumPad'ы неудобны, поскольку являются просто "перенесенными" частями клавиатуры
; справа налево, БЕЗ АДАПТАЦИИ (!) под левую руку. Так был задуман этот скрипт.

; Убрана функция Enter, поскольку она у меня на колесе мышки...

; Безусловно, написание скрипта было бы невозможно без помощи сайта (форума)
; http://forum.script-coding.info/index.php, и его активных участников!

; (C)2008-2010 by Steve Key (Steve KEY Laboratory) e-mail: Steve_KEY@mail.ru

<!vk31:: SendInput {Raw}1 ; Alt+ 1 -> 1
<!vk32:: SendInput {Raw}2 ; Alt+ 2 -> 2
<!vk33:: SendInput {Raw}3 ; Alt+ 3 -> 3
<!vk51:: SendInput {Raw}4 ; Alt+ q -> 4
<!vk57:: SendInput {Raw}5 ; Alt+ w -> 5
<!vk45:: SendInput {Raw}6 ; Alt+ e -> 6
<!vk41:: SendInput {Raw}7 ; Alt+ a -> 7
<!vk53:: SendInput {Raw}8 ; Alt+ s -> 8
<!vk44:: SendInput {Raw}9 ; Alt+ d -> 9
<!vk43:: SendInput {Raw}0 ; Alt+ c -> 0

<!vk5A:: SendInput {Raw}, ; Alt+ z -> , (для отделения десятичной дроби)
<!vk58:: SendInput {Raw}. ; Alt+ x -> . (ну иногда бывает нужна именно точка...)

<!vkC0:: SendInput {Raw}`% ; Alt+ ` -> %
<!vk34:: SendInput {Raw}- ; Alt+ 4 -> -
<!vk52:: SendInput {Raw}+ ; Alt+ r -> +
<!vk46:: SendInput {Raw}/ ; Alt+ f -> /
<!vk56:: SendInput {Raw}* ; Alt+ v -> *

<!vk35:: SendInput {Raw}( ; Alt+ 5 -> (
<!vk54:: SendInput {Raw}) ; Alt+ t -> )

<!Esc:: SendInput {Del}      ; Alt+ Esc -> Del

<!CapsLock:: SendInput {BS} ; Alt+ CapsLock -> BackSpace

#UseHook, Off

Helpus:
Gui,99:Destroy
Gui,99:Font, Bold,
Gui,99:Add, Picture, x6 y1 w340 h320 , keybAlt.jpg
Gui,99:Add, Text, x16 y321 w330 h100 , Эта программа позволяет вводить левой рукой цифры`n(с нажатой левой клавишей Alt)`, как на NumPad'е.`n"Черные" символы заменяются на "красные".`nОстальные клавиши (Alt+Tab и т. п.) не изменяются.`nОгромная благодарность "Серому форуму" http://forum.script-coding.info/index.php и его активным участникам за их бескорыстную помощь!
Gui,99:Add, Button, Default x126 y416 w220 h30 GABOUTH, &Как правильно нажимать кнопки?
Gui,99:Font, S12 CDefault Bold, Verdana
Gui,99:Add, Button, x16 y416 w90 h30 GABOUTOK, &Ok
Gui,99:Show, x338 y126 h454 w357 gg +BackgroundTrans, %applicationname% About
Return

ABOUTOK:
  Gui,99:Destroy
  OnMessage(0x200,"")
  DllCall("DestroyCursor","Uint",hCur)
Return

ABOUTH:
  Gui,99:Destroy
  OnMessage(0x200,"")
  DllCall("DestroyCursor","Uint",hCur)
Gui,99:Font, S12 CDefault Bold, Verdana
Gui,99:Add, Text, x16 y11 w540 h240 , Следует заметить`, что данная программа гораздо удобнее, если использовать её "слепым" методом, т. е., не глядя при этом на клавиатуру...`nБольшим пальцем левой руки нажимается и удерживается клавиша Alt`, клавиши 1`, Q`, A`, Z (1`, 4`, 7 и запятая) нажимаются безымянным пальцем этой же руки`, ряд 2-W-S-X (цифры 2-5-8 и точка) - средним пальцем`, остальные - указательным`, кроме CapsLock `n(BackSpace) - он нажимается мизинцем.`nДля удобства можно клеем или лаком поставить выпуклую точку на клавише W`, аналогично тому`, как это сделано на "настоящем" NumPad'е.
Gui,99:Add, Button, Default x16 y261 w540 h40 +Center GABOUTOK, &Понятно... :-)
Gui,99:Show, x234 y125 h316 w574, %applicationname% - Как правильно нажимать кнопки?
Return

EXIT:
ExitApp

Картинка к скрипту "прикомпилируется" вот эта: