KeyDown 按住

文章目录
  1. 1. 功能
  2. 2. 语法
  3. 3. 参数
  4. 4. 返回值
  5. 5. 示例
  6. 6. 备注

功能

普通模拟按住键盘上的某个键不放, 通常配合 KeyUp 弹起 使用

语法

KeyDown 键名或键码, 次数

参数

参数 数据类型 解释
键名或键码 字符串整数型 要按的键盘按键名称或者按键码数值
次数 整数型 无实际作用, 仅为了与KeyPress 按键语法保持一致

返回值

示例

1
2
3
4
5
6
7
8
9
10
//模拟按住Shift键不放
KeyDown "Shift", 1
//延时50毫秒
Delay 50
//65是A键按键码, 由于上一句按住了shift键, 所以这里效果是Shift+A
KeyPress 65, 1
//延时50毫秒
Delay 50
//松开Shift键
KeyUp "Shift", 1
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
//高级例子
//介绍: 实现按下组合键功能
//组合键: 每个键以+号隔开, 支持键名或键码
//模拟方式: 【0:普通模拟,1:硬件模拟,2:超级模拟】
//毫秒延时: 每个按键之间的等待延时时长
Sub zmKeysGroup(组合键, 模拟方式, 毫秒延时)
Dim keys, i
keys = Split(组合键, "+")
//模拟按下不放
For i = 0 To UBound(keys) - 1
Select Case 模拟方式
Case 0
KeyDown keys(i), 1
Case 1
KeyDownH keys(i), 1
Case 2
KeyDownS keys(i), 1
End Select
Delay 毫秒延时
Next
//模拟按键
Select Case 模拟方式
Case 0
KeyPress keys(i), 1
Case 1
KeyPressH keys(i), 1
Case 2
KeyPressS keys(i), 1
End Select
//模拟松开
For i = UBound(keys) - 1 To 0 step -1
Delay 毫秒延时
Select Case 模拟方式
Case 0
KeyUp keys(i), 1
Case 1
KeyUpH keys(i), 1
Case 2
KeyUpS keys(i), 1
End Select
Next
End Sub

//调用例子如下:
Call zmKeysGroup("Ctrl+S", 0, 50)

备注

  • 按下某个键后, 一定要记得用 KeyUp 弹起 弹起这个键, 否则就算脚本停止了, 这个键也是按住状态, 除非你手动按下弹起
  • KeyDown 按住KeyUp 弹起 配合 Delay 延时 可以代替 KeyPress 按键 功能
  • 第2个参数 次数 没有实际作用, 但必须要填写
  • 在记事本里模拟按住A键不放, 却只出现一个字母A, 这是正常情况