问题标签 [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 投票
1 回答
1250 浏览

python - 我无法在 Node.js 中安装 Robotjs 库

我无法在 Node.js 中安装 Robotjs。当我尝试安装命令:npm install robot-js 时,屏幕显示此错误:

当我输入命令:npm list robotjs 时,会出现以下消息:

我不知道如何手动安装,npm 没有安装

我有 Python 3,我已经拔掉了它,只留下了 Python 2.7,但没有解决任何问题。

0 投票
1 回答
147 浏览

javascript - 如何在量角器测试的文件对话框中上传文件,而不是使用robotjs?

我正在使用此代码在对话框中浏览(上传)文件:

问题是当我在本地运行测试时一切都很好,但是当我在远程机器上运行测试时,路径没有写入对话框。是否有任何其他库可用于此目的?

0 投票
2 回答
751 浏览

node.js - robots-js + opencv 截图以灰度显示


现在我正在尝试在opencv中使用节点模块robot-js制作的屏幕截图。

但由于某种原因,它以灰度显示。
这是我的代码:

我相信这是因为缓冲区大小错误,但无法正确处理。

在此处输入图像描述

0 投票
2 回答
3333 浏览

node.js - Node-Windows - 在登录屏幕上运行 GUI 应用程序

我需要在 Windows 7 到 10 的登录屏幕上运行 GUI 应用程序。

我有一个使用 node-windows 模块注册为 SYSTEM (默认)运行的服务的 nodejs 应用程序。这似乎是我需要的先决条件,但还需要更多的东西。

该应用程序只是一个连接到套接字服务器的基本套接字客户端,目前还没有什么特别之处。

我在想,如果我使用 child_process.spawn() 打开提升的命令提示符和/或作为另一个用户运行 - 但什么用户?系统不这样做。我在想无论 winlogon.exe 以何种方式运行,但这似乎不是 SYSTEM,即使它在任务管理器中显示的是它。

如果您具有系统级访问权限,是否有 Windows 命令可以在登录屏幕中运行 GUI?

更新:

好的。到目前为止,我有一个类似 telnet 的反向客户端作为 SYSTEM 用户下的 Windows 服务在“远程主机”上运行。它定期连接到测试服务器文本界面(也是节点),您可以从中输入 nodejs 命令——基本上是自制的 JS REPL。

我能够在会话 0 下生成一个隐藏的交互式 Windows 命令提示符,键入命令并通过我的小反向命令行终端获取输出。

Obvi,加密和安全性在这里很重要,但是现在 Windows 在我笔记本电脑上 Linux 内的 VM 中运行,并且应用程序仅通过仅主机虚拟网络上的私有 NIC 相互通信,因此数据包是不会溢出到真实的网络上。

在会话 0 中的 Windows 命令提示符下,我尝试运行我的远程控制 GUI 应用程序。我没有看到 GUI,而是收到以下错误:

[5472:5492:0828/031356.901:ERROR:gpu_process_transport_factory.cc(1024)] 丢失 UI 共享上下文。

如果我tasklist,我会得到:

winlogon.exe 2140 控制台 3 6,704 K 未知 NT AUTHORITY\SYSTEM 0:00:00 N/A
LogonUI.exe 4772 控制台 3 19,104 K 未知 NT AUTHORITY\SYSTEM 0:00:00 N/A

所以,我可以看到 winlogon.exe 和 LogonUI.exe 在会话 3 中作为用户“SYSTEM”运行。

如何将服务放在 winlogon 和 logonui 的 GUI 上下文中,或在其中生成我的应用程序?

是否有 Windows 命令可以执行此操作?一个nodejs命令/模块/函数?

更多信息:

它需要是一个程序化的、可自动化的解决方案,我可以在程序中工作——无需使用另一个 GUI 应用程序进行手动调整来使其工作。

但是,注册表编辑或任何可通过节点或 Windows 控制台命令完成的操作都应该是可以接受的,因为我可以将它们合并到我的代码中。

背景:这主要是为了运行我编写的远程桌面应用程序,很像 Screen-Connect 或 LogMeIn。它工作得很好——除了在你调用任何调用 UAC 或进入登录屏幕时它会暂停的部分,这使得它对于远程 IT 工作尚不实用。

nodejs Windows 服务应用程序也可以很好地工作,在启动时作为服务自动启动,自动连接/重新连接到测试服务器,无需登录或持续连接,并且持续保持活动状态。

基本上我在想,如果我可以在登录屏幕中运行它的一个实例,它应该能够抓取桌面视频捕获以输出到网络,并从网络调用远程鼠标和键盘输入。

桌面捕获是使用 NW.js 和在远程主机上运行的 child_process.spawn()ed 基于机器人的套接字客户端完成的。

不幸的是,在服务应用程序中植入robotjs不起作用——我试过了,因为我至少在想我可以在控制器应用程序中有一个自定义的远程登录屏幕,并让robotjs在远程电脑的登录屏幕中输入密码——但没有运气。看来我只获得了旧版 Desktop 0,而不是基于robotjs 的键盘/鼠标输入的登录屏幕。

我真的希望我所需要的只是“运行”其他一些用户或进程。**注意:我正在寻找一种不涉及自动登录、重新启动或解决方法的方法。我知道微软已经正式支持完成这些任务的方法——但我还没有找到一种通过 Node 而不是 C 来完成的方法。如果有一个使用本机代码的节点模块来完成它,那对我来说很好。我只希望我的代码是 JavaScript。

无论如何,这就是我问这个问题的实际目标——在登录屏幕上运行我的远程桌面应用程序以获取视频并调用鼠标操作和击键。

如果有更好的方法与标题中的问题不匹配,请回答,如果可行,我将编辑问题以匹配答案。

0 投票
1 回答
19 浏览

socket.io - socketjs:来自服务器的请求值

我正在尝试通过 socketjs 从服务器请求值。

这是client.js

在 Server.js 中

我可以从服务器获取值,但问题是我也收到了旧值。这是console.log

你可以看到,在第一次点击时,客户端收到了完美的值,但是在第二次点击时,它打印了两次,在第三次点击时,它打印了 3 次。看起来,这个函数用之前的参数被调用了三次。

任何想法?

0 投票
1 回答
660 浏览

node.js - Angular、电子、打字稿和机器人

我正在尝试将 Typescript 与 Electron 和 RobotJS 一起使用。我是所有这些技术的初学者,所以我对幕后发生的事情缺乏深入的了解,所以我无法真正将这个问题的点点滴滴联系起来。Electron 和我的应用程序运行良好,一切都可以编译,但 RobotJS 无法运行。我得到的错误如下:

我尝试为 Electron 重建 RobotJS,但它仍然无法正常工作。这是本机节点模块吗?我不确定,必须先阅读它,以弄清楚如果确实如此,我将如何处理它。

这甚至可以实现吗?谢谢,祝你有美好的一天!

LE:看起来我正在尝试使用依赖于节点(主进程)的robotjs 来自角度(渲染进程)。当我将我试图用robotjs 做的事情从角度组件移到由电子运行的main.ts 时,它起作用了。我会尝试找到一种从角度使用它的方法,我猜是进程间通信之类的,因为我现在找不到任何其他方法。仍在等待想法,因为我现在有点不知所措。谢谢!

0 投票
0 回答
491 浏览

electron - Electron typeString() 上的 Robotjs 未按预期工作

https://github.com/octalmage/robotjs/issues/472

这个问题令人讨厌的是,它在他们的机器上为我的同事工作,但对我不起作用,我们不知道如何调试。

预期行为

期望当用户点击成功注册的快捷方式时,该字符串将出现在用户打开的任何活动窗口的屏幕上

当前行为

什么都没发生!

你的环境

0 投票
0 回答
385 浏览

node.js - electronjs NODE_MODULE_VERSION 错误和重建命令无法解决问题

当我运行应用程序时,我试图在电子(v5.0.5)应用程序中使用robotjs,我收到以下错误,我使用了电子重建命令:

并且也使用npm rebuild过,我仍然遇到同样的问题。

我还安装了 nvm 并尝试了节点版本 12.0.0、12.0.4、8.16。

我该如何解决这个问题?

0 投票
1 回答
189 浏览

testing - 带有 Electron 的 TestCafe:显示和隐藏主窗口

我们的 Electron 应用程序开始最小化到 Windows 通知区域,即在桌面上不可见。

用户通过单击应用程序通知托盘图标强制应用程序显示在桌面上。

使用 RobotJs(即单击硬编码的 XY 坐标)可以自动执行此操作,但即使使用归一化坐标,这在多个分辨率下也有点不稳定。

通过 TestCafe,我想根据测试的需要以编程方式显示和隐藏主窗口。

0 投票
1 回答
637 浏览

node.js - 模拟全局键盘快捷键以在 travis-ci 和 appveyor 中测试 Electron 应用程序

我正在尝试使用 Spectron 对我的 Electron 应用程序进行端到端测试。我需要这些测试才能在 travis-ci(linux 和 mac)和 appveyor(windows)上工作。

我需要模拟全局快捷方式Ctrl + X⌘ + X在 Mac 上)。Spectron 不提供模拟按键的功能。因此我尝试使用RobotJS,但很难让它在 travis 和 appveyor 上可靠地构建。我也试过node-key-sender了,它适用于 windows 和 linux,但我无法让它按下⌘</kbd> key. I've tried using the string 'command' and 'meta' in node-key-sender with no success.

这个问题有没有可以在 travis-ci 和 appveyor 上可靠运行的解决方案?

注意:跳过模拟他们的按键完全不是和选项。我正在尝试使用 Spectron 编写端到端测试,并且无法直接从 Spectron 调用应用程序中的函数。