当电子应用在后台运行时,我想在鼠标的双right-click
上触发一个动作
我阅读了文档,看起来鼠标事件没有globalshortcuts。
任何其他方式来实现这一目标?也许某些节点模块与电子应用兼容?
答案 0 :(得分:0)
我找到了HTML代码的好方法
<script type = "text/javascript">
const {remote} = require('electron')
const {Menu, MenuItem} = remote
const menu = new Menu()
// Build menu one item at a time, unlike
menu.append(new MenuItem ({
label: 'MenuItem1',
click() {
console.log('item 1 clicked')
}
}))
menu.append(new MenuItem({type: 'separator'}))
menu.append(new MenuItem({label: 'MenuItem2', type: 'checkbox', checked: true}))
menu.append(new MenuItem ({
label: 'MenuItem3',
click() {
console.log('item 3 clicked')
}
}))
// Prevent default action of right click in chromium. Replace with our menu.
window.addEventListener('contextmenu', (e) => {
e.preventDefault()
menu.popup(remote.getCurrentWindow())
}, false)
</script>
将此作为HTML Body中的第一项,它应该可以正常工作。至少它适用于我的项目
编辑,因为我忘了它:积分谷歌回答第6条答案 1 :(得分:0)
不幸的是,我们还不能实现。
正如 MarshallOfSound 对这个官方问题的评论
“globalShortcut 全局拦截组合键,并阻止任何应用程序接收这些键事件。如果您阻止应用程序接收鼠标按钮,那么一切都会很快崩溃?”
https://github.com/electron/electron/issues/13964
对于 macOS,我目前使用的是 Keyboard Maestro App。 我正在使用此应用获取鼠标键,并在我的 Electron 应用中触发 globalShortcut 组合键寄存器。
也许适用于 Windows、AHK(自动热键)