2017-08-31 72 views

回答

4

看起来像“重复”标记已被删除,但我也回到了评论部分。因此,对于后人:

这是行不通的原因是因为.keyDown事件的全局监视器需要比某些其他事件处理程序更多的权限,包括有人认为这是重复的。这主要是因为全球.keyDown监视器可用于恶意目的,如键盘记录器。所以有额外的安全措施来确保我们是合法的:

1)您的应用程序需要进行代码签名。

2)您的应用需要启用了应用程序沙箱和:

3)您的应用需要在安全性进行登记和隐私偏好设置面板,辅助下。

第三的这些东西一个必须由用户启用,但是你可以用这个代码轻移他们在那个方向:

let options: NSDictionary = [kAXTrustedCheckOptionPrompt.takeUnretainedValue() as String : true] 
let accessEnabled = AXIsProcessTrustedWithOptions(options) 

if !accessEnabled { 
    print("Access Not Enabled") 
} 

这会提示用户,让他/她的选项自动打开适当的偏好设置窗格,用户可以通过Accessibility API允许您的应用程序控制计算机,假设您的应用程序已签名且未经过沙盒处理,它将允许您的全局.keyDown监视器工作。

+0

谢谢sooo多!!! –

+0

感谢您的支持! –