我正在玩一个小型电子应用程序,以制作一种简单的复制/粘贴方法。
我已经使用globalShortcut
注册了一个热键:
globalShortcut.register(mod + '+' + key, () => {
clipboard.writeText(content);
// Paste content to any input field/app
});
现在可以转到记事本并按注册的修饰符粘贴内容吗?
示例: 应用加载后,会注册一个快捷方式,该快捷方式将剪贴板设置为所需的文本。
然后他们进入一种想要粘贴此内容的表单,然后按要为其粘贴内容的键?
从本质上讲,这是员工使用所需的任意组合键设置通用快捷键/文本片段的方法。因此,如果他们要填写报告123,则只需点击其“ Ctrl + Shift + R”键即可粘贴与该热键关联的内容。
如何执行此操作或模拟Ctrl V触发它?
我已经尝试了RobotJS(不支持全局快捷方式)和Java版本(最好始终不使用)。
答案 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
})