在Electron应用程序外粘贴或以其他方式输出文本?

waxmsbnn  于 12个月前  发布在  Electron
关注(0)|答案(3)|浏览(182)

从Electron应用程序中,是否可以将文本输出到光标当前所在的任何位置,即即使是实际Electron应用程序之外的某个地方?
到目前为止,我想到的最好的解决方案是将文本写入剪贴板,并通知用户文本已准备好粘贴。

mi7gmzs6

mi7gmzs61#

我会给给予RobotJS一个尝试。它似乎做你需要的。

ohfgkhjo

ohfgkhjo2#

您可以尝试RobotJS的替代方案。它是一个非常小的,仍然跨平台的库,用于将密钥发送到您的操作系统,称为node-key-sender。
使用npm install --save-dev node-key-sender安装。
并使用以下命令向键盘发送文本:

var ks = require('node-key-sender');
ks.sendText('This is my text');

字符串
查看文档页面:https://www.npmjs.com/package/node-key-sender

uwopmtnx

uwopmtnx3#

我试过使用RobotJS,但到2023年为止无法让它与electron一起工作。node-key-sender需要Java运行时,这不如不需要运行时作为依赖项的系统原生实用程序那么好。
这个问题最初是在2015年提出的。快进到今天,Node.js和工具都有了很大的进步。Node.js从版本8开始发布了Node-API(NAPI),这使得与原生插件的接口变得很容易。还有像NAPI-RS这样的工具,可以让你轻松地将Rust编译成Node.js原生插件。
所以,是的,通过这些更新,我能够使用NAPI-RS将Rust enigotext util编译到Node.js包中,这允许您轻松插入文本。您可以在https://github.com/xitanggg/node-insert-text上阅读有关源代码和实现的更多信息。
(One NAPI-RS工具非常好的一点是,二进制文件已经构建好了,所以这个包在安装后就可以工作了,也就是说,不需要自己构建它。此外,二进制文件是有选择地安装的,这意味着安装只安装你的系统需要的二进制文件,例如windows或Mac,以保持小的大小,而不是一次包含所有二进制文件。)
要试用它,您可以使用

npm i @xitanggg/node-insert-text

字符串
然后运行以下代码片段:

import {insertText} from '@xitanggg/node-insert-text;

insertText("👋Hello World! This line is inserted programmatically🤖")


希望这对今天遇到这个问题的人有所帮助。(所以,是的,如果你找不到任何符合你需求的现有npm包,你可以找到一个Rust替代品,并将其编译为Node.js本地插件,这只是一个简单的例子)

相关问题