【问题标题】:how to enable/disable mac build-in keyboard programmatically如何以编程方式启用/禁用 mac 内置键盘
【发布时间】: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


    【解决方案1】:

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

    【讨论】:

      猜你喜欢
      • 2019-04-22
      • 1970-01-01
      • 2011-10-10
      • 1970-01-01
      • 2011-11-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-03-05
      相关资源
      最近更新 更多