我们知道GetAsyncKeyState可以用来为程序设置单个热键,但如果是设置一组热键(如:Ctrl+F12)的话,可不可以仍然用这个函数呢?具体怎么

biku 2003-05-13 10:40:03
我们知道GetAsyncKeyState可以用来为程序设置热键,但如果是设置一组热键(如:Ctrl+F12)的话,可不可以仍然用这个函数呢?具体怎么用呢?
...全文
63 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
刘洪峰AIoT 2003-05-17
  • 打赏
  • 举报
回复
即:1000 0000 0000 0000,然后让它GetAsyncKeyState的值进行逻辑加(And - &)
意思是只取最高位的值(这个位置的值标识键是否按下)。

注:如键目前处于按下状态,则位15设为1;如抬起,则为0
biku 2003-05-16
  • 打赏
  • 举报
回复
to:yefanqiu(叶帆) 谢谢您的回答,不过&H8000是指什么?
griefforyou 2003-05-14
  • 打赏
  • 举报
回复
UP.
刘洪峰AIoT 2003-05-14
  • 打赏
  • 举报
回复
Option Explicit
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Const VK_F12 = &H7B
Private Const VK_CONTROL = &H11

Private Sub Timer1_Timer()
Dim a As Integer
a = GetAsyncKeyState(VK_F12)
Dim b As Integer
b = GetAsyncKeyState(VK_CONTROL)

If (a And &H8000) And (b And &H8000) Then
MsgBox "Ctrl+F12"

End If

End Sub
bydisplay 2003-05-14
  • 打赏
  • 举报
回复
不可以
If Shift = 2 And KeyCode = vbKeyF12 Then
End
End If


1,488

社区成员

发帖
与我相关
我的任务
社区描述
VB API
社区管理员
  • API
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧