插上游戏手柄(USB)后,在XP系统的---控制面板---游戏控制器 中自动就检测到了硬件如下图:    查看“属性”时可以看到里面有许多“按扭”如下图:当我按下select 键时,1键被测到按下。  请问怎么在我的程序中,获得手柄按下的是1键、2键、3键?

解决方案 »

  1.   

    这样,你先用这个全局钩子,来试试看游戏杆按下对应的键后,全局钩子识别出的是什么,然后你就捕获对应的值就ok了:
    http://www.codeproject.com/KB/cs/globalhook.aspx
      

  2.   

    如果你看这个例子的代码很复杂,你就单单使用它确定游戏杆对应健,发到windows后,是什么内容,然后再使用这样的方法捕获:        /// <summary>
            /// 快捷键处理
            /// </summary>
            /// <param name="sender"></param>
            /// <param name="e"></param>
            private void Form1_KeyDown(object sender, KeyEventArgs e)
            {            if (e.Control&&e.Shift && (e.KeyCode == Keys.V))
                {
                    MessageBox.Show("Ctrl+Shift+V");
                }        }
      

  3.   

    楼上的,你那个“钩子”的网址,我下不来?能帮个帮不?
    computerfox
     
    (阿捷) 等 级: 
      

  4.   

    你要在CodeProject上注册一个账户就可以下了。
    如果你不想弄,就给我一个邮箱吧。
      

  5.   

    [email protected],最好,把钩子的源码一并发了。
      

  6.   

    我发现我真的很强,这都能让我找到呀(晕,又自恋了!)
    首先你要下载DirectX SDK:
    http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=2c7da5fb-ffbb-4af6-8c66-651cbd28ca15然后下载这个程序,应该能解决你的问题了。
    http://www.codeproject.com/KB/directx/joystick.aspx你去注册一个CodeProject的账户,这上面是宝库,你不加入,很可惜的。
      

  7.   

    手柄是hid设备,C#没有标准的映射
    去下一个JoyToKey,日本人写的控件,应该可以的
      

  8.   


    你需要安装那个DirectX SDK,如果微软官方下载不了,你就搜索一下,这种东西其他地方都有的下载。
      

  9.   

    DirectX Software Development Kit比较大,有554.6 MB,正在下载ing
      

  10.   


    DirectX SDK也装了,
    程序也下了,仍然,没调试成功! 
    这个郁闷呀..........感谢你,热情无私的回复!
      

  11.   

    GetKeyState应该有这么个API可以查询按键状态
      

  12.   

    你访问源码搜搜,输入关键字:游戏控制杆按键
    能够搜索到很多东西,你一个个试试看吧!
    http://search.codesoso.com