Skip to content
索引

获取用户选中

https://www.cnblogs.com/muwoo/p/14971743.html

百度翻译的桌面端软件可以做到滑译,即鼠标选中内容就在下方进行翻译,生成翻译框很好搞,electron支持窗口定位,但是怎么监听鼠标选中内容和获取内容呢,electron没有这种功能

最终发现用一个hack方法来实现这一功能:

  1. 监听用户按下鼠标、松开鼠标事件
  2. 调用系统命令,复制选中内容到剪贴版命令(如windows的ctrl+v),electron再获取剪贴板
  3. 调用系统命令保存前,先保存用户之前的粘贴内容,最后恢复原先的粘贴内容,从而达到用户无感知的效果

综上,我们需要能监听系统鼠标事件、能调用系统复制功能的npm包,最好是多平台支持(windows、mac、linux)

robot.js

js
const robot = require('robotjs');

// 监听鼠标按下事件
robot.mouseClick(function(mouseStatus) {
  console.log('Mouse clicked at x:' + mouseStatus.x + ' y:' + mouseStatus.y);
});

// 监听鼠标抬起事件
robot.mouseToggle("up", "left");

// 复制文本到剪贴板
robot.keyTap("c", "control");
const robot = require('robotjs');

// 监听鼠标按下事件
robot.mouseClick(function(mouseStatus) {
  console.log('Mouse clicked at x:' + mouseStatus.x + ' y:' + mouseStatus.y);
});

// 监听鼠标抬起事件
robot.mouseToggle("up", "left");

// 复制文本到剪贴板
robot.keyTap("c", "control");

Released under the MIT License.