安全和隐私以及自修改应用程序

问题描述

我和一个朋友正在使用 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 (将#修改为@)