HotkeyNet 软件入门教程¶
下载与安装¶
下载软件一定要到官网, 不然 .exe 可执行文件被魔改了, 被盗号了你就欲哭无泪了.
HotkeyNet 官网:
官网下载地址: http://www.hotkeynet.com/p/download.html, 点击 Current Build (最新版本) 下载. 该软件很久没有更新了, 最新版本是 2010 年的. (注, 目前该软件官网已经不在了, 我自己留有备份)
安装:
软件体积很小, 1MB 不到. 解压到任意 Windows 目录下即可. 双击 hotkeynet.exe 运行. 根据官网, Win7 系统可能需要以管理员身份运行才能保证工作正常.
建议将其放到全英文目录下, 以避免出现各种奇怪的问题.
软件工作原理¶
软件运行后, 你需要点击 Load Script (Script 是脚本的意思) 按钮选择一个脚本文件运行.
什么是脚本文件:
脚本文件是一个 HotkeyNet 纯文本无格式文件 (Word 是带格式文件). 简单来说各种编程语言的代码都是纯文本无格式文件. HotkeyNet 脚本文件本质上就是一个编程语言的代码, 而 HotkeyNet 编程语言本身是一种标记式的标记语言, 类似网页 HTML 语言, 非常容易学习.
而在这个脚本文件中定义了各种的 键盘鼠标按键 作为 触发器. 每个 触发器 对应的 响应, 以及这些响应会被发送到哪些窗口中. 一旦脚本文件被读取, 那么你定义的所有 键盘鼠标按键 触发器 就会生效.
而脚本文件本身的文件名后缀没有任何限制.
什么是窗口¶
任何你在 Windows 中打开的程序, 无论是文件浏览器, 游戏客户端, 文本编辑器, 图片. 这些打开的界面都是一个个的窗口. 每个窗口都有自己的名字. HotkeyNet 主要用名字来区分各个窗口, 以供用户定义 触发器的响应 要被发送到哪个窗口去.
例如你打开魔兽世界客户端, 中文客户端的默认窗口名是: “魔兽世界” 而英文客户端默认窗口名是: “World of Warcraft”
修改窗口名字¶
由于多个游戏客户端的窗口名默认是一样的, 无法让 HotkeyNet 对他们做区分, 所以我们需要给这些窗口不同的名字. 给窗口重命名的方式有两种, 手动命名和脚本命名. 这里我们只介绍手动命名. 脚本命令方式在介绍脚本时介绍.
打开HotkeyNet 软件 -> 顶部菜单 -> Actions -> Rename a Window -> 点击该选项然后点击要修改的窗口的标题
获取鼠标的坐标¶
鼠标的坐标类型可以分为两种:
屏幕坐标: 表示在整个显示屏上以左上角为原点时鼠标所在位置的坐标.
窗口坐标: 表示在某个窗口中以窗口左上角为原点时鼠标所在的位置的坐标.
HotkeyNet 主界面有一个窗口 Last key press
, 它显示的上一次鼠标键盘动作时的键盘按键名以及鼠标的坐标.
键盘鼠标按键¶
一个游戏键盘一般有 F1-F12, 1-9, a-z, ctrl/alt/shift/tab, 以及各种特殊符号, 还有小键盘, 上下左右键. 每一个键盘上的按键都有一个按键名. 在你的脚本中你需要用这些按键名来让程序知道你希望它按下哪个键. 而鼠标的按键本质上也是按键, 无论是左键, 右键, 还是中间键. 而这些按键都有: 按下(不松手), 抬起(在按下的状态下松手), 按一下(按下+抬起) 三种模式. 这三种模式可以构成 组合键, 例如 Ctrl + C.
所有按键名速查表: http://www.hotkeynet.com/ref/keynames.html, 最左边的一列是按键名, 也就是 HotKeyNet 脚本中的虚拟按键名. 这里我们留了一个备份:
Key name |
Virtual key code (hex) |
Virtual key code (decimal) |
Extended |
LButton |
1 |
1 |
no |
RButton |
2 |
2 |
no |
MButton |
4 |
4 |
no |
Button4 |
5 |
5 |
no |
Button5 |
6 |
6 |
no |
Backspace |
8 |
8 |
no |
Tab |
9 |
9 |
no |
WheelForward |
A |
10 |
no |
WheelBackward |
B |
11 |
no |
Clear |
C |
12 |
no |
Enter |
D |
13 |
no |
Shift |
10 |
16 |
no |
Ctrl |
11 |
17 |
no |
Alt |
12 |
18 |
no |
Pause |
13 |
19 |
no |
CapsLock |
14 |
20 |
no |
Kana |
15 |
21 |
no |
Hangul |
15 |
21 |
no |
Junja |
17 |
23 |
no |
Final |
18 |
24 |
no |
Hanja |
19 |
25 |
no |
Kanji |
19 |
25 |
no |
Esc |
1B |
27 |
no |
Convert |
1C |
28 |
no |
NoConvert |
1D |
29 |
no |
Accept |
1E |
30 |
no |
ModeChange |
1F |
31 |
no |
Space |
20 |
32 |
no |
NumpadPgUp |
21 |
33 |
no |
NumpadPgDn |
22 |
34 |
no |
NumpadEnd |
23 |
35 |
no |
NumpadHome |
24 |
36 |
no |
NumpadLeft |
25 |
37 |
no |
NumpadUp |
26 |
38 |
no |
NumpadRight |
27 |
39 |
no |
NumpadDown |
28 |
40 |
no |
Select |
29 |
41 |
no |
2A |
42 |
no |
|
Execute |
2B |
43 |
no |
NumpadInsert |
2D |
45 |
no |
NumpadDelete |
2E |
46 |
no |
Help |
2F |
47 |
no |
0 |
30 |
48 |
no |
1 |
31 |
49 |
no |
2 |
32 |
50 |
no |
3 |
33 |
51 |
no |
4 |
34 |
52 |
no |
5 |
35 |
53 |
no |
6 |
36 |
54 |
no |
7 |
37 |
55 |
no |
8 |
38 |
56 |
no |
9 |
39 |
57 |
no |
A |
41 |
65 |
no |
B |
42 |
66 |
no |
C |
43 |
67 |
no |
D |
44 |
68 |
no |
E |
45 |
69 |
no |
F |
46 |
70 |
no |
G |
47 |
71 |
no |
H |
48 |
72 |
no |
I |
49 |
73 |
no |
J |
4A |
74 |
no |
K |
4B |
75 |
no |
L |
4C |
76 |
no |
M |
4D |
77 |
no |
N |
4E |
78 |
no |
O |
4F |
79 |
no |
P |
50 |
80 |
no |
Q |
51 |
81 |
no |
R |
52 |
82 |
no |
S |
53 |
83 |
no |
T |
54 |
84 |
no |
U |
55 |
85 |
no |
V |
56 |
86 |
no |
W |
57 |
87 |
no |
X |
58 |
88 |
no |
Y |
59 |
89 |
no |
Z |
5A |
90 |
no |
Numpad0 |
60 |
96 |
no |
Numpad1 |
61 |
97 |
no |
Numpad2 |
62 |
98 |
no |
Numpad3 |
63 |
99 |
no |
Numpad4 |
64 |
100 |
no |
Numpad5 |
65 |
101 |
no |
Numpad6 |
66 |
102 |
no |
Numpad7 |
67 |
103 |
no |
Numpad8 |
68 |
104 |
no |
Numpad9 |
69 |
105 |
no |
Multiply |
6A |
106 |
no |
NumpadPlus |
6B |
107 |
no |
Separator |
6C |
108 |
no |
NumpadMinus |
6D |
109 |
no |
Decimal |
6E |
110 |
no |
F1 |
70 |
112 |
no |
F2 |
71 |
113 |
no |
F3 |
72 |
114 |
no |
F4 |
73 |
115 |
no |
F5 |
74 |
116 |
no |
F6 |
75 |
117 |
no |
F7 |
76 |
118 |
no |
F8 |
77 |
119 |
no |
F9 |
78 |
120 |
no |
F10 |
79 |
121 |
no |
F11 |
7A |
122 |
no |
F12 |
7B |
123 |
no |
F13 |
7C |
124 |
no |
F14 |
7D |
125 |
no |
F15 |
7E |
126 |
no |
F16 |
7F |
127 |
no |
F17 |
80 |
128 |
no |
F18 |
81 |
129 |
no |
F19 |
82 |
130 |
no |
F20 |
83 |
131 |
no |
F21 |
84 |
132 |
no |
F22 |
85 |
133 |
no |
F23 |
86 |
134 |
no |
F24 |
87 |
135 |
no |
ScrollLock |
91 |
145 |
no |
OemNecEqual |
92 |
146 |
no |
OemFjMasshou |
93 |
147 |
no |
OemFjTouroku |
94 |
148 |
no |
OemFjLoya |
95 |
149 |
no |
OemFjRoya |
96 |
150 |
no |
LShift |
A0 |
160 |
no |
RShift |
A1 |
161 |
no |
LCtrl |
A2 |
162 |
no |
RCtrl |
A3 |
163 |
no |
LAlt |
A4 |
164 |
no |
RAlt |
A5 |
165 |
no |
Oem1 |
BA |
186 |
no |
Plus |
BB |
187 |
no |
Comma |
BC |
188 |
no |
Minus |
BD |
189 |
no |
Period |
BE |
190 |
no |
Oem2 |
BF |
191 |
no |
Oem3 |
C0 |
192 |
no |
Oem4 |
DB |
219 |
no |
Oem5 |
DC |
220 |
no |
Oem6 |
DD |
221 |
no |
Oem7 |
DE |
222 |
no |
Oem8 |
DF |
223 |
no |
OemAx |
E1 |
225 |
no |
Oem102 |
E2 |
226 |
no |
IcoHelp |
E3 |
227 |
no |
Ico00 |
E4 |
228 |
no |
ProcessKey |
E5 |
229 |
no |
IcoClear |
E6 |
230 |
no |
Packet |
E7 |
231 |
no |
OemReset |
E9 |
233 |
no |
OemJump |
EA |
234 |
no |
OemPa1 |
EB |
235 |
no |
OemPa2 |
EC |
236 |
no |
OemPa3 |
ED |
237 |
no |
OemWsCtrl |
EE |
238 |
no |
OemCuSel |
EF |
239 |
no |
OemAttn |
F0 |
240 |
no |
OemFinish |
F1 |
241 |
no |
OemCopy |
F2 |
242 |
no |
OemAuto |
F3 |
243 |
no |
OemEnlw |
F4 |
244 |
no |
OemBackTab |
F5 |
245 |
no |
Attn |
F6 |
246 |
no |
CrSel |
F7 |
247 |
no |
ExSel |
F8 |
248 |
no |
EREOF |
F9 |
249 |
no |
Play |
FA |
250 |
no |
Zoom |
FB |
251 |
no |
NoName |
FC |
252 |
no |
Pa1 |
FD |
253 |
no |
OemClear |
FE |
254 |
no |
Cancel |
3 |
3 |
yes |
NumpadEnter |
D |
13 |
yes |
PgUp |
21 |
33 |
yes |
PgDn |
22 |
34 |
yes |
End |
23 |
35 |
yes |
Home |
24 |
36 |
yes |
Left |
25 |
37 |
yes |
Up |
26 |
38 |
yes |
Right |
27 |
39 |
yes |
Down |
28 |
40 |
yes |
PrintScreen |
2C |
44 |
yes |
Insert |
2D |
45 |
yes |
Delete |
2E |
46 |
yes |
LWin |
5B |
91 |
yes |
RWin |
5C |
92 |
yes |
Apps |
5D |
93 |
yes |
Sleep |
5F |
95 |
yes |
Divide |
6F |
111 |
yes |
NumLock |
90 |
144 |
yes |
RShift |
A1 |
161 |
yes |
RCtrl |
A3 |
163 |
yes |
RAlt |
A5 |
165 |
yes |
BrowserBack |
A6 |
166 |
yes |
BrowserForward |
A7 |
167 |
yes |
BrowserRefresh |
A8 |
168 |
yes |
BrowserStop |
A9 |
169 |
yes |
BrowserSearch |
AA |
170 |
yes |
BrowserFavorites |
AB |
171 |
yes |
BrowserHome |
AC |
172 |
yes |
Mute |
AD |
173 |
yes |
VolumeDown |
AE |
174 |
yes |
VolumeUp |
AF |
175 |
yes |
MediaNextTrack |
B0 |
176 |
yes |
MediaPrevTrack |
B1 |
177 |
yes |
MediaStop |
B2 |
178 |
yes |
MediaPlayPause |
B3 |
179 |
yes |
B4 |
180 |
yes |
|
MediaSelect |
B5 |
181 |
yes |
LaunchApp1 |
B6 |
182 |
yes |
LaunchApp2 |
B7 |
183 |
yes |
特殊符号按键表: https://www.cnblogs.com/del/archive/2007/12/07/987364.html, 有些特殊符号的键的名字无法从上表中直观的查出. 不过你可以使用链接中的虚拟按键码表格查到虚拟按键吗, 然后通过查找 Virtual key code (decimal) 找到对应的按键名. 这里我们留了一个备份.
虚拟键码 |
对应值 |
对应键 |
VK_LBUTTON |
1 |
鼠标左键 |
VK_RBUTTON |
2 |
鼠标右键 |
VK_CANCEL |
3 |
Cancel |
VK_MBUTTON |
4 |
鼠标中键 |
VK_XBUTTON1 |
5 |
|
VK_XBUTTON2 |
6 |
|
VK_BACK |
8 |
Backspace |
VK_TAB |
9 |
Tab |
VK_CLEAR |
12 |
Clear |
VK_RETURN |
13 |
Enter |
VK_SHIFT |
16 |
Shift |
VK_CONTROL |
17 |
Ctrl |
VK_MENU |
18 |
Alt |
VK_PAUSE |
19 |
Pause |
VK_CAPITAL |
20 |
Caps Lock |
VK_KANA |
21 |
|
VK_HANGUL |
21 |
|
VK_JUNJA |
23 |
|
VK_FINAL |
24 |
|
VK_HANJA |
25 |
|
VK_KANJI |
25* |
|
VK_ESCAPE |
27 |
Esc |
VK_CONVERT |
28 |
|
VK_NONCONVERT |
29 |
|
VK_ACCEPT |
30 |
|
VK_MODECHANGE |
31 |
|
VK_SPACE |
32 |
Space |
VK_PRIOR |
33 |
Page Up |
VK_NEXT |
34 |
Page Down |
VK_END |
35 |
End |
VK_HOME |
36 |
Home |
VK_LEFT |
37 |
Left Arrow |
VK_UP |
38 |
Up Arrow |
VK_RIGHT |
39 |
Right Arrow |
VK_DOWN |
40 |
Down Arrow |
VK_SELECT |
41 |
Select |
VK_PRINT |
42 |
|
VK_EXECUTE |
43 |
Execute |
VK_SNAPSHOT |
44 |
Snapshot |
VK_INSERT |
45 |
Insert |
VK_DELETE |
46 |
Delete |
VK_HELP |
47 |
Help |
48 |
0 |
|
49 |
1 |
|
50 |
2 |
|
51 |
3 |
|
52 |
4 |
|
53 |
5 |
|
54 |
6 |
|
55 |
7 |
|
56 |
8 |
|
57 |
9 |
|
65 |
A |
|
66 |
B |
|
67 |
C |
|
68 |
D |
|
69 |
E |
|
70 |
F |
|
71 |
G |
|
72 |
H |
|
73 |
I |
|
74 |
J |
|
75 |
K |
|
76 |
L |
|
77 |
M |
|
78 |
N |
|
79 |
O |
|
80 |
P |
|
81 |
Q |
|
82 |
R |
|
83 |
S |
|
84 |
T |
|
85 |
U |
|
86 |
V |
|
87 |
W |
|
88 |
X |
|
89 |
Y |
|
90 |
Z |
|
VK_LWIN |
91 |
|
VK_RWIN |
92 |
|
VK_APPS |
93 |
|
VK_SLEEP |
95 |
|
VK_NUMPAD0 |
96 |
小键盘 0 |
VK_NUMPAD1 |
97 |
小键盘 1 |
VK_NUMPAD2 |
98 |
小键盘 2 |
VK_NUMPAD3 |
99 |
小键盘 3 |
VK_NUMPAD4 |
100 |
小键盘 4 |
VK_NUMPAD5 |
101 |
小键盘 5 |
VK_NUMPAD6 |
102 |
小键盘 6 |
VK_NUMPAD7 |
103 |
小键盘 7 |
VK_NUMPAD8 |
104 |
小键盘 8 |
VK_NUMPAD9 |
105 |
小键盘 9 |
VK_MULTIPLY |
106 |
小键盘 * |
VK_ADD |
107 |
小键盘 + |
VK_SEPARATOR |
108 |
小键盘 Enter |
VK_SUBTRACT |
109 |
小键盘 - |
VK_DECIMAL |
110 |
小键盘 . |
VK_DIVIDE |
111 |
小键盘 / |
VK_F1 |
112 |
F1 |
VK_F2 |
113 |
F2 |
VK_F3 |
114 |
F3 |
VK_F4 |
115 |
F4 |
VK_F5 |
116 |
F5 |
VK_F6 |
117 |
F6 |
VK_F7 |
118 |
F7 |
VK_F8 |
119 |
F8 |
VK_F9 |
120 |
F9 |
VK_F10 |
121 |
F10 |
VK_F11 |
122 |
F11 |
VK_F12 |
123 |
F12 |
VK_F13 |
124 |
|
VK_F14 |
125 |
|
VK_F15 |
126 |
|
VK_F16 |
127 |
|
VK_F17 |
128 |
|
VK_F18 |
129 |
|
VK_F19 |
130 |
|
VK_F20 |
131 |
|
VK_F21 |
132 |
|
VK_F22 |
133 |
|
VK_F23 |
134 |
|
VK_F24 |
135 |
|
VK_NUMLOCK |
144 |
Num Lock |
VK_SCROLL |
145 |
Scroll |
VK_LSHIFT |
160 |
|
VK_RSHIFT |
161 |
|
VK_LCONTROL |
162 |
|
VK_RCONTROL |
163 |
|
VK_LMENU |
164 |
|
VK_RMENU |
165 |
|
VK_BROWSER_BACK |
166 |
|
VK_BROWSER_FORWARD |
167 |
|
VK_BROWSER_REFRESH |
168 |
|
VK_BROWSER_STOP |
169 |
|
VK_BROWSER_SEARCH |
170 |
|
VK_BROWSER_FAVORITES |
171 |
|
VK_BROWSER_HOME |
172 |
|
VK_VOLUME_MUTE |
173 |
VolumeMute |
VK_VOLUME_DOWN |
174 |
VolumeDown |
VK_VOLUME_UP |
175 |
VolumeUp |
VK_MEDIA_NEXT_TRACK |
176 |
|
VK_MEDIA_PREV_TRACK |
177 |
|
VK_MEDIA_STOP |
178 |
|
VK_MEDIA_PLAY_PAUSE |
179 |
|
VK_LAUNCH_MAIL |
180 |
|
VK_LAUNCH_MEDIA_SELECT |
181 |
|
VK_LAUNCH_APP1 |
182 |
|
VK_LAUNCH_APP2 |
183 |
|
VK_OEM_1 |
186 |
; : |
VK_OEM_PLUS |
187 |
#ERROR! |
VK_OEM_COMMA |
188 |
|
VK_OEM_MINUS |
189 |
|
VK_OEM_PERIOD |
190 |
|
VK_OEM_2 |
191 |
/ ? |
VK_OEM_3 |
192 |
` ~ |
VK_OEM_4 |
219 |
[ { |
VK_OEM_5 |
220 |
| |
VK_OEM_6 |
221 |
] } |
VK_OEM_7 |
222 |
“ |
VK_OEM_8 |
223 |
|
VK_OEM_102 |
226 |
|
VK_PACKET |
231 |
|
VK_PROCESSKEY |
229 |
|
VK_ATTN |
246 |
|
VK_CRSEL |
247 |
|
VK_EXSEL |
248 |
|
VK_EREOF |
249 |
|
VK_PLAY |
250 |
|
VK_ZOOM |
251 |
|
VK_NONAME |
252 |
|
VK_PA1 |
253 |
|
VK_OEM_CLEAR |
254 |
我们把常用的几个列出来了:
` ~
: Oem3[ {
: Oem4] }
: Oem6\ |
: Oem5; :
: Oem1' "
: Oem7, <
: Comma. >
: Period/ ?
: 不清楚
到此我们就基本了解了 HotkeyNet 是如何工作的了. 本章的按键名表在你写脚本的时候会经常用到, 要记得经常回来查询.
HotkeyNet 菜单选项卡翻译¶
- File: 文件
Load Script: 读取脚本
Exit: 退出
- Options: 选项
Settings: 设置 (基本没用)
Connection Settings: 网络连接设置
Send Mode Settings: 发送模式设置
- Actions: 动作 (重点)
Turn off hotkeys: 禁用所有快捷键
Rename a Window: 重命名某个窗口的名字, 点击该选项然后点击要修改的窗口的标题
Hide this window: 关闭
Open command line: 打开命令行 (用敲命令的方式触发, 而不是鼠标键盘的方式)
Unload script: 让已经读取的脚本失效
Start dragging panels: