问题标签 [robotjs]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
0 回答
98 浏览

robotjs - 即使 setMouseDelay 设置为 1ms,mouseClick 也很慢

我最近一直在使用 Robotjs,我注意到鼠标和键盘的延迟很长。这是我一直在测试的代码:

当我运行上面的代码时,计时器显示代码执行大约需要 260 毫秒。您可能会注意到,鼠标延迟设置为最小值,即 1ms,但该函数仍然需要大量时间才能执行。任何人都知道问题是什么以及解决方案可能是什么?

我使用的 Robotjs 版本是 0.6.0,但我还修改了“keypress.c”文件中的代码以尝试解决问题。以下是我在该文件中所做的相同更改:https ://github.com/Kyusung4698/robotjs/blob/master/src/keypress.c

0 投票
0 回答
17 浏览

javascript - 将我的吉他信号转换为键盘按键的问题

对于我正在制作一个导入浏览器游戏的网站的项目,很酷的部分是,它们可以使用吉他而不是普通的键盘键来玩。到目前为止,在 Javascript 中我得到了音调,并且使用 RobotJS(使用 NodeJS)我基本上使用 if 语句将它们转移。使用 RobotJS,我可以说,例如,如果 ...pitch 然后按“e”,我找不到更好的库,所以我使用了这个。另外,我使用 websockets 将我的吉他数据发送到 NodeJS。

我的问题是,当我敲击一个字符串时,声音响起,这意味着某个键的 if 语句被调用多次而不是 1 次。例如,在 Subway Surfers 中,它不是向左走 1 次,而是想要走4次,导致我不及格。

调用 IF 语句后,我希望它停止。就像每次我敲击某个音符时,我只希望使用 IF 语句一次。

这是我的代码,任何提示都非常感谢!!!

我的代码基本上将我的吉他输入转换为按键:

我试图创建一个函数来打破 if 语句,如果语气与已经调用的语气相同,它确实有效,有点,但不够好。

如果有人有任何提示或想法,以便每次我击中正确的音符时,只有 1 次 if 语句被激活,我会非常、非常、非常高兴!

周末愉快。

0 投票
0 回答
70 浏览

electron - 测试电子全局快捷方式(加速器)

我有一个包含许多 webviews 的电子应用程序。我正在用 Spectron 测试它。我有像这样的加速器

  • Cmd+ 放大
  • Cmd- 缩小
  • Cmdr 重新加载页面

在这里读到 RobotJS 可以用于相同的用途。问题是

  1. RobotJS 无法识别 + 键、- 键等。
  2. 我按照这个这个链接使 RobotJS 与电子一起工作。我的电子版是 11.4.5。于是我跑了npm rebuild --runtime=electron --target=11.4.5 --disturl=https://atom.io/download/atom-shell --abi=67。当我运行测试时,我得到

我尝试使用此 stackoverflow 链接来修复上述版本问题,但无济于事。

我也尝试使用webdriver 密钥,但没有效果。我没有收到任何错误,但在运行集成测试时没有任何反应。

更新:

  1. 我在 RobotJS repo 上打开了一个Github 问题。
0 投票
0 回答
62 浏览

node.js - 如何测试键盘快捷键 (globalShortcut)?

我想为电子中的全局键盘快捷键编写集成测试。

我的应用程序有一些 webviews 具有放大/缩小功能,分别使用cmd=cmd-键进行测试。

我尝试了几个测试框架,如 spectron、robotJS、node-key-sender。似乎没有任何效果。问题是cmd键未被识别为键盘输入。

对此有任何指示吗?

0 投票
2 回答
53 浏览

javascript - In JavaScript, I'm randomly selecting a function, however when that function is selected, the code inside it is not run

我正在尝试从一组不同的函数中随机选择一个函数。在控制台中它显示“[Function:cycle3]”所以它告诉我正在选择哪个函数,但是函数内部的代码没有运行。如何让随机选择的函数中的代码运行?

0 投票
0 回答
46 浏览

robotjs - RobotJS,如何在 Mac 上执行 shift 单击或命令单击?

我想在 Mac 上按住 shift 键时执行鼠标单击。

我尝试了以下方法:

但是它不起作用。mouseClick()按住 shift 键将其注册为单击。

如何在robotjs中实现换档点击?

0 投票
1 回答
192 浏览

javascript - 我如何获得未更改的屏幕截图并将其保存到 NodeJS 的文件中?

我有一个程序可以获取robotjs屏幕截图并将其保存到文件中,例如1 fps 的实时流。

在当前时刻,每一秒它:

  1. 截屏
  2. 从中创建一个 Jimp 实例
  3. 将其写入screen.png

我想不出任何明显的原因来解释为什么在我截屏时会导致某些颜色反转。

例如,当我在访问 Stack Overflow 后查看图像时,Stack Overflow 图标看起来是蓝色而不是通常的橙色,然后等待一秒钟(以便它可以截取我看截图的截图),在截图中在屏幕截图中,颜色恢复正常——原来的橙色 SO 标志。截图中的截图又是蓝色的,以此类推。需要注意的重要一点是,并非所有颜色都是反转的 - 徽标是反转的,但白色背景不是。

app.jsnode app.js. 我尝试的一件事是从 robotsjs 屏幕截图创建一个 Jimp 实例,然后从 Jimp 实例创建一个 Jimp 实例,这样希望颜色会反转回来,但它看起来是一样的。我猜这个问题与robotjs图像数据有关,但我不能确定。

如何获得未更改的屏幕截图并将其保存到文件中?

编辑:

这是一个例子:

正常(非反转)颜色:

正常(非反转)颜色

反转颜色:

反转颜色

0 投票
1 回答
197 浏览

webpack - Electron/Webpack 不读取 .node 文件

我试图加载robotjselectron但我不断收到一个恼人的Failed to compile错误。

我正在使用Vue.js界面,如果这很重要。

错误

node-loader我尝试使用to添加新规则,webpack但没有奏效。

0 投票
0 回答
318 浏览

node.js - robotsjs 和 electronjs 的哪些版本(如果有)是兼容的?

在一个 Electron 项目中,我只是尝试要求 RobotJS 并得到了错误:

我在目录中尝试了建议npm install,但错误没有得到修复。npm rebuildnode_modules/robotjs

我尝试了几个不同的版本。我目前在最新的 RobotJS 分支上,所以我尝试转到过去的 Electron 版本。

Electron 11.0.0(显然最早的 11.x 版本):Node.js version using NODE_MODULE_VERSION 83. This version of Node.js requires NODE_MODULE_VERSION 85.

Electron 10.4.7(最新 10.x 版本):Node.js version using NODE_MODULE_VERSION 83. This version of Node.js requires NODE_MODULE_VERSION 82.

10.4.7 和 11.0.0 之间似乎没有任何 Electron 版本,所以接下来我尝试降低 RobotJS 版本,但这与我的 Node.js 版本不兼容:

而且我宁愿不使用各种 Node.js 版本和电子版本,因为有一个完美匹配的机会。

有没有比试错更简单的方法来确定是否有任何版本兼容?或者更好的是,如果不对其中一个库进行大量修改,是否可以修复兼容性?

0 投票
0 回答
172 浏览

node.js - 由于robotjs,使用pkg创建.exe失败

所以我使用 pkg 创建一个相当简单的 node/express 应用程序的可执行文件。我遇到了 npm 模块 robotsjs 的问题,每当我创建我的 exe 时,由于以下错误,它不会运行:

当我在我的项目中删除对robotjs的调用时,它工作得很好。

我的 package.json 中有以下内容

当我运行 pkg 时。--debug,它显示的最后一个错误是:

有任何想法吗?我尝试更新robotjs prebuild-install,在我的dist文件夹中添加robotjs的本地资源,从npm而不是github安装robotjs,将robotjs模块添加为资产,但无论我做什么,我都无法解决这个问题。