objective-c – 以编程方式启用辅助设备的访问

objective-c – 以编程方式启用辅助设备的访问,第1张

概述我想以编程方式在“系统偏好设置”中为辅助设备启用Access.但问题是我的应用程序没有以root用户身份运行,我不希望我的应用程序成为root用户,也不应该要求在它们之间进行任何身份验证. 我想全局点击所有键盘事件.我正在使用CGEventTapCreate().在CGEventTapCreate()API的文档中,提到了,如果满足下列条件之一,则事件选通接收密钥启动和密钥关闭事件: >当前进程以 我想以编程方式在“系统偏好设置”中为辅助设备启用Access.但问题是我的应用程序没有以root用户身份运行,我不希望我的应用程序成为root用户,也不应该要求在它们之间进行任何身份验证.

我想全局点击所有键盘事件.我正在使用CGEventTapCreate().在CGEventTapCreate()API的文档中,提到了,如果满足下列条件之一,则事件选通接收密钥启动和密钥关闭事件:

>当前进程以root用户身份运行.
>启用辅助设备访问.在Mac OS X v10.4&稍后,您可以使用“系统偏好设置”,“通用访问”面板,“键盘”视图启用此功

我通过从系统首选项检查辅助设备的启用访问来手动尝试,它给了我预期的输出.

那么有什么方法可以通过程序执行相同的 *** 作而不需要身份验证,并且应用程序也不是以root用户身份运行的?

谢谢,

Dheeraj.

解决方法 您可以运行Applescript(或将Applescript转换为ScriptingBrIDge或AppleEvents上的Objective-C层)

这是我在一个特定项目中使用的Applescript,它可以执行与您需要的类似的 *** 作:

on isUIScriptingOn()    tell application "System Events" to set isUIScriptingEnabled to UI elements enabled    return isUIScriptingEnabledend isUIScriptingOnon turnUIScriptingOn(switch)    tell application "System Events"        activate        set UI elements enabled to switch    end tellend turnUIScriptingOnon run    if not isUIScriptingOn() then        display dialog "Enable Access for assistive devices (found in the Universal Access System Preference) must be on for this software to correctly work. This program will enable this setting for you"        turnUIScriptingOn(true)        display dialog "Access for assistive devices in Now on"    end ifend run
总结

以上是内存溢出为你收集整理的objective-c – 以编程方式启用辅助设备的访问全部内容,希望文章能够帮你解决objective-c – 以编程方式启用辅助设备的访问所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1021882.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-23
下一篇 2022-05-23

发表评论

登录后才能评论

评论列表(0条)

保存