网页资讯视频图片知道文库贴吧地图采购
进入贴吧全吧搜索

 
 
 
日一二三四五六
       
       
       
       
       
       

签到排名:今日本吧第个签到,

本吧因你更精彩,明天继续来努力!

本吧签到人数:0

一键签到
成为超级会员,使用一键签到
一键签到
本月漏签0次!
0
成为超级会员,赠送8张补签卡
如何使用?
点击日历上漏签日期,即可进行补签。
连续签到:天  累计签到:天
0
超级会员单次开通12个月以上,赠送连续签到卡3张
使用连续签到卡
08月26日漏签0天
vb吧 关注:156,083贴子:1,166,207
  • 看贴

  • 图片

  • 吧主推荐

  • 游戏

  • 27回复贴,共1页
<<返回vb吧
>0< 加载中...

GetAsyncKeyState的返回值到底怎么理解?

  • 只看楼主
  • 收藏

  • 回复
  • aa13058219642
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
GetAsyncKeyState函数返回的是指定虚拟键瞬时的状态值,它有四种返回值:
0---键当前未处于按下状态,而且自上次调用GetAsyncKeyState后改键也未被按过;
1---键当前未处于按下状态,但在此之前(自上次调用GetAsyncKeyState后)键曾经被按过;
-32768(即16进制数&H8000) --- 键当前处于按下状态,但在此之前(自上次调用GetAsyncKeyState后)键未被按过;
-32767(即16进制数&H8001) --- 键当前处于按下状态,而且在此之前(自上次调用GetAsyncKeyState后)键也曾经被按过。
主要是我没搞懂“上次调用GetAsyncKeyState后改键也未被按过”这句话什么意思...



  • qq1132244364
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
将这个和Caps Lock一起理解就好了


2025-08-26 18:23:35
广告
不感兴趣
开通SVIP免广告
  • Kita
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
可以理解成自从上次使用getasynckeystate直到现在那个键都没有按过


  • linskcy
  • 数据库
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
你应该样理解吧,,你在文本框按住A,,
出现的效果是,,
出现一个A,,,停顿了一下,,,然后后连续出现A
-32767 是 出现一个A的时候,,-32768是停顿的时候


  • linskcy
  • 数据库
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
Private Declare Function GetAsyncKeyState Lib "user32" (ByVal vKey As Long) As Integer
Private Sub Timer1_Timer()
x = GetAsyncKeyState(vbKeyA)
Cls
If x Then
Print "按住了A"
Else
Print "没按住A"
End If
If x = -32767 Then
Me.Caption = Me.Caption & "A"
End If
End Sub
你可以试试效果



  • aa13058219642
  • 子类化
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

-32767和-32768 交替是出现的?


  • linskcy
  • 数据库
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

你找个文本框,,,按住A看看
出现的效果是,,
出现一个A,,,停顿了一下,,,然后后连续出现A
-32767 是 出现一个A的时候,,-32768是停顿的时候(没出现A)
-32768和-32768时 ,按键都是按住的
不知道你能否理解


  • linskcy
  • 数据库
    10
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼

每出现一个A的间隔内,第一次 GetAsyncKeyState,得到-32767然后都是-32768,,
图上第二条线是timer的间隔比较大的效果,第3条线是 timer的间隔比较小


2025-08-26 18:17:35
广告
不感兴趣
开通SVIP免广告
  • yjryym
  • 多线程
    14
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
&H8001产生频率与WM_KEYDOWN消息一样。大多情况下,判断是否小于0就可以了。


  • 《顾名思义》
  • 小吧主
    13
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
。。。。。
If GetKeyState(VbKeyA)<0 Then
Msgbox ”A键被按下”
Else
MsgBox "A键没有被按下”


  • 独自飘零IV
  • 暴力枚举
    8
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼
路过帮顶。顶顶顶,暖贴。路过帮顶。顶顶顶,暖贴。


登录百度账号

扫二维码下载贴吧客户端

下载贴吧APP
看高清直播、视频!
  • 贴吧页面意见反馈
  • 违规贴吧举报反馈通道
  • 贴吧违规信息处理公示
  • 27回复贴,共1页
<<返回vb吧
分享到:
©2025 Baidu贴吧协议|隐私政策|吧主制度|意见反馈|网络谣言警示