如何以编程方式启用/禁用mac内置键盘

时间:2014-05-06 06:39:30

标签: objective-c macos cocoa keyboard

我使用命令:

  

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));

帮助工具中的

。它没有用,内置键盘没有正确禁用。

我是否会遗漏某些东西或者还有其他办法来完成这项工作?

1 个答案:

答案 0 :(得分:0)

当我重新启动我的macbook时,它起作用了...所以这是解决这个问题的正确方法 如果您有其他想法,请发表评论。