用 C# 控制游戏设备

这篇博客介绍了如何在Windows环境下,通过C#和DirectX进行游戏设备的控制,包括列举所有设备、筛选手柄设备、设置设备反馈以及配置设备工作状态。示例代码来源于DirectX SDK,并建议读者查阅相关文档以获取更详细信息。
摘要由CSDN通过智能技术生成

       在windows中控制游戏设备有现成的通用接口DirectX,不过我今天说的是托管代码的编程方法,不光是C#, VB.net也是适用的。

       首先确保你的操作系统中有DirectX 9 ,在新建项目中添加引用,添加Microsoft.DirectX, Microsoft.DirectX.DirectInput, 添加完成后就可以编写代码了。

       首先罗列出所有的设备,下面的例子用树罗列出了计算机中所有的设备,如果你的手柄连接到了计算机上,你可以看看目录中有没有手柄的名字。

private   void  PopulateAllDevices(TreeView tvDevices)
{
    
//Add "All Devices" node to TreeView
    TreeNode allNode = new TreeNode("All Devices");
    tvDevices.Nodes.Add(allNode);

    
//Populate All devices
    foreach(DeviceInstance di in Manager.Devices)
    
{

        
//Get Device name
        TreeNode nameNode = new TreeNode(di.InstanceName);

        
//Is device attached?
        TreeNode attachedNode = new TreeNode(
            
"Attached = " + 
            Manager.GetDeviceAttached(di.ProductGuid));

        
//Get device Guid
        TreeNode guidNode = new TreeNode(
            
"Guid = " + di.InstanceGuid);

        
//Add nodes
        nameNode.Nodes.Add(attachedNode);
        nameNode.Nodes.Add(guidNode);
        allNode.Nodes.Add(nameNode);
    }


}

 

上面的例子是罗列出所有设备,如果你只想罗列手柄的话

 

private   void  PopulateKeyboards(TreeView tvDevices)
{
    
//Add "Keyboard Devices" node to TreeView
    TreeNode keyboardNode = new TreeNode("Keyboard Devices");
    tvInputDevices.Nodes.Add(keyboardNode);

    
//Populate Attached Keyboards
    foreach(DeviceInstance di in
        Manager.GetDevices(DeviceType.Joystick,EnumDevicesFlags.AttachedOnly))
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值