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

问题描述

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...