You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过winmm.dll读取游戏摇杆功能?附Python实现代码

使用winmm.dll读取游戏摇杆的Python实现

最近我在折腾用Python调用Windows的winmm.dll库来读取游戏摇杆的功能,目前写了一部分实现代码,先分享出来:

from ctypes import windll, Structure, c_uint, c_ushort, c_char, c_ulong

# 定义Windows API里用到的类型别名
WORD = c_ushort
UINT = c_uint
TCHAR = c_char
MAXPNAMELEN = 32  # Windows中设备名称的最大长度常量

# 加载winmm.dll库
winmm = windll.LoadLibrary('winmm.dll')

# 定义JOYCAPS结构体,用于存储游戏摇杆的硬件信息
class JOYCAPS(Structure):
    _fields_ = [
        ('wMid', WORD),          # 制造商ID
        ('wPid', WORD),          # 产品ID
        ('szPname', TCHAR * MAXPNAMELEN),  # 设备名称字符串
        ('wXmin', UINT),         # X轴最小值
        ('wXmax', UINT),         # X轴最大值
        ('wYmin', UINT),         # Y轴最小值
        ('wYmax', UINT),         # Y轴最大值
        ('wZmin', UINT),         # Z轴最小值
        ('wZmax', UINT),         # Z轴最大值
        # 这里省略了其他结构体字段,比如旋转轴、按钮相关的参数等
    ]

这个JOYCAPS结构体是Windows多媒体API里定义的,专门用来获取摇杆的基础硬件参数——比如各个轴的量程范围、设备标识信息这些。接下来还得调用winmm里的joyGetDevCaps函数来填充这个结构体的数据,之后才能进一步读取摇杆的实时输入状态。

内容的提问来源于stack exchange,提问作者Dudi b

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.22 08:44:20