问题描述
我和一个朋友正在使用 electron 开发一个应用程序。此应用程序具有当前存储在应用程序 LaunchMenu.app
中的设置。在这个应用程序中,我们使用以下 JXA 脚本来执行键盘事件:
//JXA send keys
function sendKeys(sequence){
const events = Application("System Events");
sequence.forEach(data => {
console.log(data.keys);
if ("keys" in data) events.keystroke(data.keys,data.modifiers ? {using: data.modifiers} : {});
if ("codes" in data) events.keyCode(data.codes,data.modifiers ? {using: data.modifiers} : {});
});
}
问题是每当我们更改设置时,LaunchMenu.app
都会更改,这会导致在发送按键事件消息时出现以下消息。
“LaunchMenu“ wants access to control “System Events“. Allowing control will provide access to documents and data in “System Events“,and to perform actions within that app.
该应用程序仍然在 Security & Privacy > Accessibility
菜单中被勾选,但我们需要取消勾选并重新勾选它才能再次开始使用键盘事件...
一种解决方法是尝试不修改应用程序,但是我们非常喜欢应用程序的自包含方式,并且我们无法确保应用程序将来不会更改(通过第三个安装在其上的派对小程序)。
我们还能做些什么来确保我们运行的脚本始终拥有 system events
的权限?
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)