资源描述
按键精灵脚本制作教程:如何实现同时按多个键
来源:按键学院 【按键精灵】
最近发现许多小伙伴,提出类似这样的问题:“我手动按下v键,希望达到的效果是同时按下了Ctrl和V键”那么,要如何实现呢?我们今天就来分享下,几种实现方法。
方法1-键盘命令
步骤:
1、检测键盘按键,如果按下v则进行下一步
2、按住ctrl键不放
3、按下v键
4、弹起ctrl键
代码:
Do
Key = WaitKey
If key = 86 Then 'v的按键码为 86
KeyDown 17, 1 'ctrl 的按键码为 17
KeyPress 86, 1
KeyUp 17,1
End If
Loop
以上是按下某一个键,达到的效果是按下组合键的方法
如果希望按下某一个键,达到的效果是按下另外两个非组合键,例如按下V,实现的是按下W和C
代码如下:
Do
Key = WaitKey
If key = 86 Then 'v的按键码为 86
KeyPress 87, 1'W的按键码为 87
KeyPress 67, 1'C的按键码为 67
End If
Loop
方法2-命令库命令
步骤:
1、检测键盘按键,如果按下v则进行下一步
2、调用 我的命令库 ——>键盘——>键盘组合键 命令
此命令的第一个参数,键盘码要怎么写呢?
例如,我们要按下 Ctrl+V 键,那么参数1的值就为"Ctrl+V"
如果,我们要按下 Ctrl+Alt+V 键,那么参数1的值就为"Ctrl+Alt+V"
代码:
Do
Key = WaitKey
If key = 86 Then 'v的按键码为 86
Call lib.键盘.键盘组合键("Ctrl + V",0)
End If
Loop
如果希望按下某一个键,达到的效果是按下另外两个非组合键,例如按下V,实现的是按下W和C
我们需要用到我的命令库 ——>键盘——>键盘按键组 命令
此命令的第一个参数,和 键盘组合键 命令的参数写法不一样
例如,我们要按下W和C键
那么,参数1的值就为:"W,C"
键与键之间用逗号隔开
代码:
Do
Key = WaitKey
If key = 86 Then 'v的按键码为 86
Call lib.键盘.键盘按键组("W,C",0,0)
End If
Loop
方法3-热键控件
步骤:
1、在界面里画一个热键控件
2、在窗口加载事件中设置热键V
3、在热键Hotkey事件中,输入按下Ctrl+v的组合键
接下来,有两个方案
1、在窗口加载事件中就给热键控件设置热键
这里要设置热键控件的三个方法的值:Modifiers、Virtualkey、Register
Modifiers值:1为Shift键,2为Ctrl键,4为Alt键;6为Alt+Ctrl键……其他组合类同。
Virtualkey值:按键码和鼠标码;按键码为:65为A键;鼠标码为:32769左键按下……其他请到键盘/鼠标命令分类下查询。 Register值:True为注册,False为销毁。
三个方法的值设置完之后,在热键控件的Hotkey事件中,输入按下组合键Ctrl+V的代码
代码:
Event Form1.Hotkey1.Hotkey
Call lib.键盘.键盘组合键("Ctrl + V",0)
End Event
Event Form1.Load
//设置热键为:V
Form1.Hotkey1.Virtualkey = 86
//注册热键;True为注册,False为销毁。
Form1.Hotkey1.Register True
End Event
注意:设置热键之后,不要忘记用Register方法注册下热键,否则热键不生效。
2、运行窗口之后,在界面中设置热键控件
在热键控件的Change事件中,输入注册热键代码(当改了界面中热键控件的热键时,Change事件生效。)
接着和方案1一样,在热键控件的Hotkey事件中,输入按下组合键Ctrl+V的代码
代码:
Event Form1.Hotkey1.Hotkey
Call lib.键盘.键盘组合键("Ctrl + V",0)
End Event
//当热键控件中的文本内容被改变后,触发Change事件
Event Form1.Hotkey1.Change
Form1.Hotkey1.Register True
End Event
拓展
有小伙伴问小编,有没有办法,我按下v键,输入ctrl+s,但是v键不响应。
这只能通过去拦截键盘消息,用按键实现起来则有困难。
那怎么办呢?
例如:
当我们操作记事本时,希望按下V键则实现按下Ctrl+V键
于是,我们用上面的方法来实现
运行脚本之后,会发现
按下V之后,确实操作了Ctrl+V键,把剪贴板内容粘上去了
但是,前面的那个V怎么回事??
不希望V响应,我们可以换一个角度来想。
我们设置热键不一定要是v对不对,我们设置一个记事本无法响应的键不就可以解决问题了吗?
小编随便找个键测试了下,发现按下F7,记事本是没有响应的。
那我们就把热键设置为F7
效果:
展开阅读全文