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

如何在Electron窗口外生成点击事件?

在Electron中生成窗口外的点击事件解决方案

Electron内置API仅能处理自身窗口内的交互事件,要实现窗口外的点击事件模拟,需要借助系统级输入模拟库,这里推荐使用robotjs(跨平台支持),具体操作如下:

  • 安装依赖
    首先安装robotjs模块:

    npm install robotjs
    
  • 适配Electron环境
    由于robotjs是原生Node模块,需要与Electron内置的Node版本匹配,执行以下命令重新编译:

    npx electron-rebuild
    
  • 编写模拟点击代码
    两种常见实现方式:

    • 基于当前光标位置点击:
      结合你之前用的screen.getCursorScreenPoint()获取坐标,再调用robotjs执行点击:
      const { screen } = require('electron');
      const robot = require('robotjs');
      
      // 获取当前光标屏幕坐标
      const cursorPoint = screen.getCursorScreenPoint();
      // 移动鼠标到目标位置(可选,若光标已在目标位置可省略)
      robot.moveMouse(cursorPoint.x, cursorPoint.y);
      // 模拟左键单击
      robot.mouseClick('left', false);
      
    • 指定坐标直接点击:
      如果需要固定位置点击,直接传入坐标即可:
      const robot = require('robotjs');
      
      // 移动鼠标到(300, 400)位置
      robot.moveMouse(300, 400);
      // 执行左键点击
      robot.mouseClick();
      
  • 注意事项

    • 系统权限:macOS需要在「系统设置-隐私与安全性-辅助功能」中给Electron应用授权;Windows/Linux一般无需额外权限,但部分安全软件可能拦截。
    • 跨平台差异:robotjs在不同系统上的行为基本一致,但特殊按键/点击类型可能有细微差别,建议在目标平台测试。
    • 谨慎使用:系统级模拟会真实触发系统交互,避免在循环中频繁执行点击操作,防止影响系统正常使用。

内容的提问来源于stack exchange,提问作者Ase 45

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.13 22:14:59