【发布时间】:2014-06-22 15:30:10
【问题描述】:
我使用命令:
sudo kextunload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext
sudo kextload /System/Library/Extensions/AppleUSBTopCase.kext/Contents/PlugIns/AppleUSBTCKeyboard.kext
手动禁用/启用 mac 内置键盘。它似乎卸载/加载内置键盘的驱动程序并且工作正常。
那么如何在代码中做到这一点。在我看来,我需要做两个任务。
1.卸载/加载驱动程序
2.运行sudo命令
第一个任务很简单,只要使用 KextManager API 就可以了。
第二个,我发现苹果文档说当你想运行 sudo 身份验证任务时,出于安全考虑,你应该使用类似的东西:
1. 启动
2. SM无业
3. XPC服务
4. 等等...
将高权限任务抽象为作为launchd进程运行的子助手工具,并使用XPC服务在主应用程序和该助手工具之间进行通信。
我尝试了所有这些,并且辅助工具工作正常,但是当我使用时
KextManagerUnloadKextWithIdentifier(CFSTR("com.apple.driver.AppleUSBTCKeyboard"));
在帮助工具中。它不起作用,内置键盘未正确禁用。
我错过了什么还是有其他方法可以完成这项工作?
【问题讨论】:
标签: objective-c macos cocoa keyboard