我正在玩一个小型电子应用程序,以制作简单的复制/粘贴方法。
我已经使用注册了热键globalShortcut
:
globalShortcut.register(mod + '+' + key, () => {
clipboard.writeText(content);
// Paste content to any input field/app
});
现在可以转到记事本并按注册的修饰符粘贴内容吗?
示例:应用程序加载,注册一个快捷方式,该快捷方式将剪贴板设置为其所需的文本。
然后,他们进入一个想要粘贴此内容的表单,然后按要为其粘贴内容的键?
这实质上是员工使用他们想要的任何按键组合来设置通用的快捷键/文本片段的方式。因此,如果他们正在填写报告123,则只需按下其键“ Ctrl + Shift + R”,即可粘贴与该热键关联的内容。
如何执行此操作或模拟Ctrl V触发它?
我已经尝试过RobotJS(不支持全局快捷键)和Java版本(无论如何都不要使用)。
它使用以下代码为我工作:
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”出现。
您需要确定是延迟更长的时间(由于“等待”时间长而对用户友好,但不太可能混淆按键)还是延迟时间较短(及时响应,由于按键混淆而导致错误结果的可能性更大) )。
如果我们谈论的是高度重复的工作或大量的文本,这可能仍会节省时间。
本文收集自互联网,转载请注明来源。
如有侵权,请联系 [email protected] 删除。
我来说两句