跳到主要内容

KeyDown 按住

🎯功能

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

📜语法

KeyDown 键名或键码, 次数

📥参数

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

📤返回

💡示例

//模拟按住Shift键不放
KeyDown "Shift", 1
//延时50毫秒
Delay 50
//65是A键按键码, 由于上一句按住了shift键, 所以这里效果是Shift+A
KeyPress 65, 1
//延时50毫秒
Delay 50
//松开Shift键
KeyUp "Shift", 1
//高级例子
//介绍: 实现按下组合键功能
//组合键: 每个键以+号隔开, 支持键名或键码
//模拟方式: 【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 弹起这个键, 否则就算脚本停止了, 这个键也是按住状态, 除非你手动按下弹起
  • keydownkeyup 配合 delay 可以代替 keypress 功能
  • 第2个参数 次数 没有实际作用, 但必须要填写
  • 在记事本里模拟按住A键不放, 却只出现一个字母A, 这是正常情况