你将如何用Windows的ctypes重新创建这个API结构?

2024-10-01 22:25:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我不完全确定这个特定的结构是如何用ctypes在Python中创建的,因为它有一个嵌套的Union块。在

typedef struct tagINPUT {
  DWORD type;
  union {
    MOUSEINPUT    mi;
    KEYBDINPUT    ki;
    HARDWAREINPUT hi;
  };
} INPUT, *PINPUT;

如何处理嵌套的Union块?在


Tags: typehictypes结构structmiuniontypedef
1条回答
网友
1楼 · 发布于 2024-10-01 22:25:49

由于此联合从未在INPUT之外正确使用,因此可以将其创建为嵌套类:

class INPUT(Structure):
    class _I(Union):
        _fields_ = [
            ('mi', MOUSEINPUT),
            ('ki', KEYBDINPUT),
            ('hi', HARDWAREINPUT),
        ]

    _anonymous_ = ('i', )
    _fields_ = [
        ('type', DWORD),
        ('i', _I),
    ]

即使您没有使用anonymous,也可以使用input.i.hi.uMsg这样的操作。在

^{pr2}$

相关问题 更多 >

    热门问题