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

为何SendMessage对Roblox等部分应用无法发送点击指令?

问题:后台向Roblox发送鼠标点击消息无效,但其他窗口消息正常

背景

我想编写一个自动点击器,在后台给Roblox(无恶意用途)执行点击操作。已成功获取窗口句柄,发送WM_CLOSE这类指令可正常执行,但发送WM_LBUTTONDOWN和WM_LBUTTONUP鼠标点击消息时返回值为0,完全没有效果。选择SendMessage是为了避免激活目标窗口。

最小可复现代码

import win32gui
import win32con
import win32api

hwnd = win32gui.FindWindow(None, "Roblox")

while True:
    lParam = win32api.MAKELONG(100, 100)
    temp = win32gui.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, None, lParam)
    win32gui.SendMessage(hwnd, win32con.WM_LBUTTONUP, None, lParam)
    print(temp)

已尝试的解决方法

  • 切换目标窗口,确认不存在选错或未识别窗口的问题
  • 按常规格式发送消息,代码如下但仍无效:
    lParam = win32api.MAKELONG(100, 100)  # 转换坐标为长整型
    temp = win32gui.SendMessage(hwnd, win32con.WM_LBUTTONDOWN, None, lParam)  # 发送按下消息
    win32gui.SendMessage(hwnd, win32con.WM_LBUTTONUP, None, lParam)  # 发送释放消息
    
  • 在其他窗口测试代码可正常运行,仅Roblox无响应
  • 发送WM_CLOSE等指令正常执行,证明窗口句柄正确:
    temp = win32gui.SendMessage(hwnd, win32con.WM_CLOSE, 0, 0)  # 关闭窗口
    

可能的原因与解决方案

  1. Roblox输入机制特性:Roblox基于游戏引擎开发,输入处理可能依赖原始输入(Raw Input)而非标准窗口消息循环,WM_LBUTTONDOWN这类消息无法被其识别。
  2. 定位正确的子窗口:FindWindow获取的是主窗口句柄,实际接收输入的可能是主窗口内的渲染子控件。可通过win32gui.EnumChildWindows遍历子窗口,找到目标子句柄后再发送消息。
  3. 改用SendInput模拟硬件输入:若必须实现后台操作,可使用SendInput模拟硬件级点击(需临时激活窗口,之后恢复原焦点),示例代码:
    import win32api
    import win32con
    import win32gui
    
    def simulate_click(x, y, hwnd):
        # 保存当前焦点窗口
        original_focus = win32gui.GetForegroundWindow()
        # 激活目标窗口
        win32gui.SetForegroundWindow(hwnd)
        # 移动鼠标到目标屏幕坐标
        win32api.SetCursorPos((x, y))
        # 模拟左键按下与释放
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, x, y, 0, 0)
        win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, x, y, 0, 0)
        # 恢复原窗口焦点
        win32gui.SetForegroundWindow(original_focus)
    
    hwnd = win32gui.FindWindow(None, "Roblox")
    simulate_click(100, 100, hwnd)
    
  4. 提升脚本权限:确保脚本以管理员权限运行,部分游戏会限制普通权限程序的输入模拟操作。

内容的提问来源于stack exchange,提问作者Blue Robin

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 16:50:21