剪贴板中的电子粘贴值

时间:2019-04-01 22:01:23

标签: node.js electron

我正在玩一个小型电子应用程序,以制作一种简单的复制/粘贴方法。

我已经使用globalShortcut注册了一个热键:

globalShortcut.register(mod + '+' + key, () => { 
 clipboard.writeText(content);
 // Paste content to any input field/app
});

现在可以转到记事本并按注册的修饰符粘贴内容吗?

示例: 应用加载后,会注册一个快捷方式,该快捷方式将剪贴板设置为所需的文本。

然后他们进入一种想要粘贴此内容的表单,然后按要为其粘贴内容的键?

从本质上讲,这是员工使用所需的任意组合键设置通用快捷键/文本片段的方法。因此,如果他们要填写报告123,则只需点击其“ Ctrl + Shift + R”键即可粘贴与该热键关联的内容。

如何执行此操作或模拟Ctrl V触发它?

我已经尝试了RobotJS(不支持全局快捷方式)和Java版本(最好始终不使用)。

2 个答案:

答案 0 :(得分:2)

使用以下代码对我有用:

const { app, globalShortcut } = require('electron')
const robot = require('robotjs')

app.on('ready', () => {
    globalShortcut.register('Control+Shift+R', () => {

        console.log('Control+Shift+R is pressed')

        // simulate CTRL+V / CMD+V
        setTimeout(() => {
            robot.keyTap('v', process.platform==='darwin' ? 'command' : 'control')
        }, 150)
    })
})

app.on('will-quit', () => {
    globalShortcut.unregisterAll()
})

此处的“技巧”是将模拟按键按一定的时间间隔 ,以便解开实际的物理按键和模拟按键。在较短的间隔内,我经常看到一个“ v”出现。

您需要确定是延迟更长的时间(由于长时间的“等待”而不太友好,但不太可能混淆按键)还是延迟较短的时间(及时响应,由于以下原因更可能导致错误的结果)键混音。)

如果我们谈论的是高度重复的工作或大量的文本,这可能仍会节省时间。

答案 1 :(得分:0)

这是由于缺少带有本机剪贴板按键绑定的应用程序菜单。可以通过创建自己的键盘设置(称为加速器)来进行设置。

要进行复制/粘贴,您需要使用content.paste()或content.copy(),此方法将执行编辑命令粘贴或复制到网页中。

因此,您可以设置一个加速器来调用编辑命令,例如复制或粘贴。

示例:

projects/firestoresample-efe59/agent/sessions/c9d0a8aa-901c-aecc-6ff7-7d9157e3d3d5

})

contents doc

accelerators docs