win32 SendMessage PostMessage 后台模拟鼠标点击

本文详细介绍了Windows API中的SendMessage和PostMessage函数用于后台模拟鼠标点击的操作。特别指出,错误的代码示例可能导致鼠标点击无法正确模拟,如错误设置wParam参数。正确的使用方式是将wParam设为0,以确保完整模拟鼠标按下和释放过程。

win32 SendMessage PostMessage 后台模拟鼠标点击

SendMessage

将指定的消息发送到一个或多个窗口。SendMessage函数的函数调用指定的窗口的窗口过程,并不会返回,直到窗口过程已经处理了该消息

PostMessage

将消息放置在与创建指定窗口的线程相关联的消息队列中,并不等待线程处理消息的情况下返回消息。

参数

LRESULT SendMessage(
  HWND   hWnd,
  UINT   Msg,
  WPARAM wParam,
  LPARAM lParam
);

hWnd 窗口的句柄
Msg 要发送的消息
wParam 特定于消息的其他信息
lParam 特定于消息的其他信息

Msg参数都在这
wParam和lParam参数根据Msg参数填写,没有或不知道填0

救命啊,不知道哪个人写的错误代码

win32api.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, win32con.MK_LBUTTON, long_position)
win32api.SendMessage(hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, long_position)

什么东西啊这是,离谱极了

WM_LBUTTONUP

当光标在窗口的客户区域中时,用户释放鼠标左键时发布。如果未捕获鼠标,则消息将发布到光标下方的窗口中。否则,该消息将发布到捕获鼠标的窗口中。

wParam
Indicates whether various virtual keys are down. This parameter can be one or more of the following values.
指示各种虚拟键是否按下。此参数可以是以下值中的一个或多个。
 
MK_CONTROL    0x0008    The CTRL key is down.
 按下CTRL键
MK_MBUTTON    0x0010    The middle mouse button is down.
 按下鼠标中键
MK_RBUTTON    0x0002    The right mouse button is down.
 按下鼠标右键
MK_SHIFT    0x0004    The SHIFT key is down.
 按下SHIFT键
MK_XBUTTON1    0x0020    The first X button is down.
 按下第一个X按钮
MK_XBUTTON2    0x0040    The second X button is down.
 按下第二个X按钮
 
lParam
The low-order word specifies the x-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.
The high-order word specifies the y-coordinate of the cursor. The coordinate is relative to the upper-left corner of the client area.

win32con.MK_LBUTTON = 1
win32api.SendMessage(hwnd, win32con.WM_LBUTTONUP, win32con.MK_LBUTTON, long_position)
就等于
win32api.SendMessage(hwnd, win32con.WM_LBUTTONUP, 1, long_position)
wParam参数哪里来的1,不知道从哪里找的
这样写鼠标只按下没有释放,在某些环境下根本模拟不了后台鼠标点击
必须把1改成0才起作用win32api.SendMessage(hwnd, win32con.WM_LBUTTONUP, 0, long_position)
WM_LBUTTONDOWN
WM_LBUTTONUP
键盘和鼠标输入信息都可以在这找到

评论 12
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值