我使用命令:
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就可以帮我。
第二个,我发现Apple文档说当你想运行 sudo 身份验证任务时,出于安全考虑,你应该使用类似的东西:
发起的
2. SMJobless
3. XPC服务
等等...
将高权限任务抽象为作为启动进程运行的子助手工具,并使用XPC服务在主应用程序和此助手工具之间进行通信。
我尝试了所有这些,并且帮助工具工作正常,但是当我使用
时帮助工具中的KextManagerUnloadKextWithIdentifier(CFSTR(" com.apple.driver.AppleUSBTCKeyboard&#34));
。它没有用,内置键盘没有正确禁用。
我是否会遗漏某些东西或者还有其他办法来完成这项工作?
答案 0 :(得分:0)
当我重新启动我的macbook时,它起作用了...所以这是解决这个问题的正确方法 如果您有其他想法,请发表评论。