找回密码
 加入
搜索
查看: 4093|回复: 9

如何获取键盘上{pause}的按键状态,是Down,还是Up

  [复制链接]
发表于 2009-12-1 13:09:16 | 显示全部楼层 |阅读模式
本帖最后由 gapkiller 于 2009-12-1 17:14 编辑

是这样的, 我写了一段代码来获取键盘按键的Virtual_Key Codes
唯独按{pause}键时没有反应...
不知道为什么...

刚刚标题不清晰,重新整理了一下.
While 1
        For $i=1 To 256
                $key = _API_GetKey($i)
                If $key<0 Then 
                        If $i=27 Then Exit
                        MsgBox(0,"","code="&$i)
                EndIf
        Next
WEnd

Func _API_GetKey($code)
        Local $rKey
        $rKey = DllCall("user32.dll","short","GetKeyState","int",$code)
        If @error Then 
                MsgBox(0,"","error")
                Return SetError(@error, 0, False)
        EndIf
        Return $rKey[0]
EndFunc
 楼主| 发表于 2009-12-1 13:11:04 | 显示全部楼层
换句话说, 该如何判断{pause}key的按键状态.
发表于 2009-12-1 16:20:16 | 显示全部楼层
查阅_IsPressed函数
发表于 2009-12-1 16:21:34 | 显示全部楼层
 楼主| 发表于 2009-12-1 16:36:22 | 显示全部楼层
回复 4# pusofalse


    我知道{pause}key的Virtual code是0x13, 但是用autoit调用该API时(GetKeyState),却没有响应...
    不知道为什么
 楼主| 发表于 2009-12-1 16:45:13 | 显示全部楼层
回复 3# 78391493


    {pause}键不行....
发表于 2009-12-1 20:48:42 | 显示全部楼层
本帖最后由 131738 于 2009-12-1 20:53 编辑
#include <Misc.au3>

$dll = DllOpen("user32.dll")

While 1
        Sleep ( 250 )
        If _IsPressed("13", $dll) Then
                MsgBox(0,"_IsPressed", "End Key pause")
                ExitLoop
        EndIf
WEnd
DllClose($dll)
3.3.1.6好像反映蛮慢
发表于 2009-12-3 12:11:48 | 显示全部楼层
不只是AU3  CSharp VB.NET 都不行
 楼主| 发表于 2009-12-3 15:44:53 | 显示全部楼层
不只是AU3  CSharp VB.NET 都不行
78391493 发表于 2009-12-3 12:11


是那个WIN API的关系吧
发表于 2010-4-13 13:08:37 | 显示全部楼层
全程学习呢。利国利民。
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-11-16 13:35 , Processed in 0.086089 second(s), 23 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表