自动添加应用程序以允许辅助访问

时间:2017-01-31 09:02:45

标签: xcode shell applescript applescript-objc

应用程序的一部分使用此AppleScript(在Xcode AppleScript应用程序中用作AppleScriptObjC)更改触控板的滚动方向。

运行时,它会弹出一条消息,告诉我我的应用程序未被允许访问权限(通常的消息......)

以下是代码:

on TrackpadIsAttached()
    try
        tell application "System Preferences" to quit
        tell application "System Preferences"
            activate
            set current pane to pane "com.apple.preference.trackpad"
        end tell
        tell application "System Events" to tell application process "System Preferences"
            tell radio button 2 of tab group 1 of window 1 to if value is 0 then click
            tell checkbox 1 of tab group 1 of window 1 to if value is 1 then click
        end tell
        tell application "System Preferences" to quit
        functionSuccessful("Mouse control optimisation completed successfully.")
     on error errMsg
         my errorReporting(errMsg, "Fatal Mouse Optimisation (Trackpad) Error")
         tell application "System Preferences" to quit
     end try
end TrackpadIsAttached

我知道我可以手动执行:System Preferences> Security & Privacy> Privacy> Accessibility但也可以使用AppleScriptObjC或“Do Shell Script”自动完成吗? - 我不介意用户是否需要输入密码才能对其进行身份验证等。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分:0)

两件事:

  1. GUI脚本是绝对不可靠的自动化选项:令人羞愧地笨拙和脆弱,并且手动或自动启用它可能会带来潜在的安全风险 - 而不是您想要放在自己或您身上的责任用户,如果你可以帮助它。如果有任何编程方式来执行您需要的操作,请改用它。这导致我们......

  2. 您尚未说明为什么您的用户需要和/或想要更改其触控板方向。你的应用程序的目的是什么?它是否旨在为经常反向触控板方向的用户(例如在玩第三方游戏时)提供更简单的方法?或者它试图为了自己的目的扭转它? (例如,如果您的应用只需知道用户手指真正移动的方式,请使用-[NSEvent isDirectionInvertedFromDevice]。)

  3. 更新您的问题以解释您的总体目标,并且您更有可能获得不会further dig you into any holes of your own unintended making的强大高质量答案。