gapkiller 发表于 2009-12-1 13:09:16

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

本帖最后由 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
EndFunc

gapkiller 发表于 2009-12-1 13:11:04

换句话说, 该如何判断{pause}key的按键状态.

78391493 发表于 2009-12-1 16:20:16

查阅_IsPressed函数

pusofalse 发表于 2009-12-1 16:21:34

Virtual-Key Codes
http://msdn.microsoft.com/en-us/library/ms927178.aspx

gapkiller 发表于 2009-12-1 16:36:22

回复 4# pusofalse


    我知道{pause}key的Virtual code是0x13, 但是用autoit调用该API时(GetKeyState),却没有响应...
    不知道为什么

gapkiller 发表于 2009-12-1 16:45:13

回复 3# 78391493


    {pause}键不行....

131738 发表于 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好像反映蛮慢

78391493 发表于 2009-12-3 12:11:48

不只是AU3CSharp VB.NET 都不行

gapkiller 发表于 2009-12-3 15:44:53

不只是AU3CSharp VB.NET 都不行
78391493 发表于 2009-12-3 12:11 http://www.autoitx.com/images/common/back.gif

是那个WIN API的关系吧

lecen 发表于 2010-4-13 13:08:37

全程学习呢。利国利民。
页: [1]
查看完整版本: 如何获取键盘上{pause}的按键状态,是Down,还是Up