vb中自己设定快捷键来执行某段代码

vb中自己设定快捷键来执行某段代码,第1张

答案补充:看了你的补充,我更一头雾水了……这样吧,你建一个Command1,添上我的代码,运行程序,按Alt+A试试。给你点注释。

==============

代码如下。

==============

Private Sub Command1_Click()

MsgBox "按了" '这里放你的程序

End Sub

Private Sub Form_KeyDown(KeyCode As Integer, Shift As Integer) '按键事件

If KeyCode = vbKeyA And (Shift And vbAltMask) = vbAltMask Then Command1_Click '判断是否按下按下Alt+A

End Sub

Private Sub Form_Load()

KeyPreview = True

End Sub

分类: 电脑/网络 >> 程序设计 >> 其他编程语言

问题描述:

如何使用vb制作一个自定义组合键快捷键的程序。

作用:在写字板中使F2键具有复制的功能(按下F2=按下Ctrl+c)F3具有粘贴的功能。

可以是对指定的进程有效也可以是全局的。

高手提供下代码,跪等~~~

解析:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vkey As Long) As Integer

Dim a

Private Sub Form_Load()

Timer1Interval = 1

Timer1Enabled = False

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

a = Asc(Text1Text)

Timer1Enabled = True

End If

End Sub

Private Sub Timer1_Timer()

If GetAsyncKeyState(a) Then MsgBox "热键调用成功!!", vbOKOnly

End Sub

这是设置热键的以个例子,你可以改一下呀

设置VB窗体中按扭快捷键的 *** 作可以采用下面两种方法来实现:

1、在按扭的Capion

属性设置标题的时候,前面增加

"&K"字符就可以,K代表的是你准备使用的Alt+键盘字符,如“&O退出”,程序运行的时候按下

Alt+O

即执行该按扭的 *** 作了

2、你可以利用该按扭所在的Form

窗体优先权获得键盘 *** 作功能来激发你要完成的按扭 *** 作,此时首先要设置Form

的KeyPreview

属性值为

True,然后在

Form中KeyDown事件中判断你需要的组合键盘值来激发你的按扭事件

Form_KeyDown事件中的各功能键值组合比较全面,如Shift,Alt

及Ctr等,一般都能满足快捷键的组合需求了

Exp:

利用Ctrl+O组合键激发上面所说的按扭键,在Form_KeyDown事件中添加如下代码

Private

Sub

Form_KeyDown(KeyCode

As

Integer,

Shift

As

Integer)

If

Shift

=

2

And

KeyCode

=

79

Then

btnQuit_Click()

End

If

End

Sub

btnQuit_Click()是退出程序按扭事件

最简单的方法是按Ctrl+E打开菜单编辑器,然后设置个菜单项为退出什么的,设置其快捷键为Ctrl+D,勾选掉“可见”属性(如果是“不可见”属性请勾上)。然后运行就可以了。

还有的方法:(代码)

方法①:

Private

Sub

Form_KeyDown(KeyCode

As

Integer,

Shift

As

Integer)

MeKeyPreview

=

True

If

KeyCode

=

vbKeyD

And

Shift

=

2

Then

End

End

Sub

方法②:

Private

Sub

Form_KeyUp(KeyCode

As

Integer,

Shift

As

Integer)

MeKeyPreview

=

True

If

KeyCode

=

vbKeyD

And

Shift

=

2

Then

End

End

Sub

方法③:

Private

Sub

Form_KeyPress(KeyAscii

As

Integer)

If

KeyAscii

=

4

Then

End

End

Sub

方法①②③的灵敏度不一样,③里面的KeyAscii=4是Ctrl+D的Ascii值,是测试出来的。

至于Ascii值测试代码,只要将方法③的语句换为MsgBox

KeyAscii就行了

Hello,绔星,给你我的codes:

Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer

Private Sub Form_Load()

Timer1Enabled = True

Timer1Interval = 100

End Sub

Private Sub Timer1_Timer()

'Alt + A

If GetAsyncKeyState(vbKeyMenu) And GetAsyncKeyState(vbKeyA) Then

Call Command1_Click

End If

'Alt + Z

If GetAsyncKeyState(vbKeyMenu) And GetAsyncKeyState(vbKeyZ) Then

'Call Command2_Click

MsgBox "2"

End If

'Alt + Q

If GetAsyncKeyState(vbKeyMenu) And GetAsyncKeyState(vbKeyQ) Then

'Call Command3_Click

MsgBox "3"

End If

End Sub

以上就是关于vb中自己设定快捷键来执行某段代码全部的内容,包括:vb中自己设定快捷键来执行某段代码、vb 自定义组合键快捷键、vb 按钮快捷键怎么设置等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zz/9389987.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-27
下一篇 2023-04-27

发表评论

登录后才能评论

评论列表(0条)

保存