一个桌面虚拟数字小键盘

我把快捷键改成了 右Ctrl+0,UI放大到150%便于触屏操作。。。

Menu, Tray, Icon, Shell32.dll, 174
Gui, Font, s12, Courier New Bold
Gui, Add, Button, x18 y15 w60 h60, =
Gui, Add, Button, x78 y15 w60 h60, /
Gui, Add, Button, x138 y15 w60 h60, *
Gui, Add, Button, x198 y15 w60 h60, -
Gui, Add, Button, x18 y75 w60 h60, 7
Gui, Add, Button, x78 y75 w60 h60, 8
Gui, Add, Button, x138 y75 w60 h60, 9
Gui, Add, Button, x198 y75 w60 h120, +
Gui, Add, Button, x18 y135 w60 h60, 4
Gui, Add, Button, x78 y135 w60 h60, 5
Gui, Add, Button, x138 y135 w60 h60, 6
Gui, Add, Button, x18 y195 w60 h60, 1
Gui, Add, Button, x78 y195 w60 h60, 2
Gui, Add, Button, x138 y195 w60 h60, 3
Gui, Add, Button, x198 y195 w60 h120 , Enter
Gui, Add, Button, x138 y255 w60 h60, .
Gui, Add, Button, x18 y255 w120 h60, 0
Gui, Add, Button, x18 y315 w60 h60, (
Gui, Add, Button, x78 y315 w60 h60, )
Gui, Add, Button, x138 y315 w60 h60, ⇧Tab
Gui, Add, Button, x198 y315 w60 h60, Tab
Gui, Add, Text,x18 y385 w248 h60, 在激活窗口按 RCtrl+0 获取焦点
id := WinExist("A")
Gui, Show,NoActivate x1600 y500 h430 w276, NumPad
Gui, +AlwaysOnTop
return
IfWinNotActive,Numpad
id := WinExist("A")
trayTip NumPad by 小恐龙, 获取输入焦点%id%
return
SetKeyDelay, -1, 0
Button⇧Tab:
ControlSend ,,+{Tab},ahk_id %id%
return
ButtonTab:
ControlSend ,,{Tab},ahk_id %id%
return
ButtonEnter:
ControlSend ,,{Enter},ahk_id %id%
return
Button=:
ControlSend ,,=,ahk_id %id%
return
Button/:
ControlSend ,,/,ahk_id %id%
return
button*:
ControlSend ,,{U+002a},ahk_id %id%
return
button+:
ControlSend ,,{U+002b},ahk_id %id%
return
button-:
ControlSend ,,-,ahk_id %id%
return
button1:
ControlSend ,,1,ahk_id %id%
return
button2:
ControlSend ,,2,ahk_id %id%
return
button3:
ControlSend ,,3,ahk_id %id%
return
button4:
ControlSend ,,4,ahk_id %id%
return
button5:
ControlSend ,,5,ahk_id %id%
return
button6:
ControlSend ,,6,ahk_id %id%
return
button7:
ControlSend ,,7,ahk_id %id%
return
button8:
ControlSend ,,8,ahk_id %id%
return
button9:
ControlSend ,,9,ahk_id %id%
return
button0:
ControlSend ,,0,ahk_id %id%
return
button.:
ControlSend ,,.,ahk_id %id%
return
Button(:
ControlSend ,,{U+0028},ahk_id %id%
return
Button):
ControlSend ,,{U+0029},ahk_id %id%
return
>^0::
id := WinExist("A")
Gui, Show,NoActivate
trayTip,NumPad by 小恐龙, 获取输入焦点%id%
return
GuiClose:
trayTip,NumPad by 小恐龙, 快捷键RCtrl+0显示小键盘
Gui, Cancel
return

然后发现ControlSend操作在现在好多界面丰富的软件中都聚焦不到正确的控件了。。。只能在记事本和Excel用一用 :joy:

再后来发现原来市面上有单独卖的只带数字区的硬件小键盘,只要三五十块钱,把NumLock关了还能用Insert Delete Home End PageUp PageDown :joy: