python写按键脚本_python模拟按键脚本

本文介绍了如何使用Python的windll.user32.SendInput函数,通过定义KeyBdInput、HardwareInput和MouseInput结构来模拟键盘和鼠标输入,实现按压和释放特定的硬件扫描码,适用于自动化测试或脚本控制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

SendInput = windll.user32.SendInput

PUL = POINTER(c_ulong)

class KeyBdInput(Structure):

_fields_ = [("wVk", c_ushort), ("wScan", c_ushort), ("dwFlags", c_ulong),

("time", c_ulong), ("dwExtraInfo", PUL)]

class HardwareInput(Structure):

_fields_ = [("uMsg", c_ulong), ("wParamL", c_short), ("wParamH", c_ushort)]

class MouseInput(Structure):

_fields_ = [("dx", c_long), ("dy", c_long), ("mouseData", c_ulong),

("dwFlags", c_ulong), ("time", c_ulong), ("dwExtraInfo", PUL)]

class Input_I(Union):

_fields_ = [("ki", KeyBdInput), ("mi", MouseInput), ("hi", HardwareInput)]

class Input(Structure):

_fields_ = [("type", c_ulong), ("ii", Input_I)]

# Actuals Functions

def PressKey(hexKeyCode):

extra = c_ulong(0)

ii_ = Input_I()

ii_.ki = KeyBdInput(0, hexKeyCode, 0x0008, 0, pointer(extra))

x = Input(c_ulong(1), ii_)

windll.user32.SendInput(1, pointer(x), sizeof(x))

def ReleaseKey(hexKeyCode):

extra = c_ulong(0)

ii_ = Input_I()

ii_.ki = KeyBdInput(0, hexKeyCode, 0x0008 | 0x0002, 0, pointer(extra))

x = Input(c_ulong(1), ii_)

windll.user32.SendInput(1, pointer(x), sizeof(x))

小键盘 scan code 表

8/Up 48

2/Down 50

4/Left 4b

6/Right 4d

键盘硬件扫描码

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值