我正在尝试使用 JS 和 Node 编写一个机器人来自动执行视频游戏上的某些任务,到目前为止我一直在使用 RobotJS。我面临的问题是,我需要在屏幕上不时移动时找到一些东西,然后单击它。类似于 PyAutoGUIlocateOnScreen()
功能的东西。
它也需要使用人工智能来具有一定的宽容度,因为图像有时不会完全相同,尽管它几乎相同,所以我认为任何用于图像识别的基本人工智能都会很好地检测它。
有谁知道在这个特定案例中使用什么?
我需要在 Windows 7 到 10 的登录屏幕上运行 GUI 应用程序。
我有一个 nodejs 应用程序注册为一项服务,它使用 node-windows 模块作为系统(默认)运行。这似乎是我需要的先决条件,但还需要更多的东西。
该应用程序只是一个连接到套接字服务器的基本套接字客户端,目前还没有什么特别之处。
我在想,如果我使用 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 Console 3 6,704 K 未知 NT AUTHORITY\SYSTEM 0:00:00 N/A
LogonUI.exe 4772 Console 3 …