macos - 如何在cocoa中模拟mac媒体键

标签 macos cocoa keyboard keyboard-shortcuts

我需要模拟按下 mac 键盘上的媒体/功能键。从亮度到音量调高/调低的一切。

这可能吗?如果是的话怎么办?我读过很多关于如何触发他们的新闻的文章,但不是这个。

如果可能的话,我希望当您更改内容时半透明图标仍然出现在屏幕上。

最佳答案

在 Swift 中尝试一下:

// Simulate illumination up
let code = NX_KEYTYPE_ILLUMINATION_UP
let event1 = NSEvent.otherEvent(with: .systemDefined, location: NSPoint.zero, modifierFlags: NSEventModifierFlags(rawValue: 0xa00), timestamp: 0, windowNumber: 0, context: nil, subtype: 8, data1: (Int((code << 16 as Int32) | (0xa << 8 as Int32))), data2: -1)
event1?.cgEvent?.post(tap: .cghidEventTap)
let event2 = NSEvent.otherEvent(with: .systemDefined, location: NSPoint.zero, modifierFlags: NSEventModifierFlags(rawValue: 0xb00), timestamp: 0, windowNumber: 0, context: nil, subtype: 8, data1: (Int((code << 16 as Int32) | (0xb << 8 as Int32))), data2: -1)
event2?.cgEvent?.post(tap: .cghidEventTap)



// Simulate illumination down
let code = NX_KEYTYPE_ILLUMINATION_DOWN
let event1 = NSEvent.otherEvent(with: .systemDefined, location: NSPoint.zero, modifierFlags: NSEventModifierFlags(rawValue: 0xa00), timestamp: 0, windowNumber: 0, context: nil, subtype: 8, data1: (Int((code << 16 as Int32) | (0xa << 8 as Int32))), data2: -1)
event1?.cgEvent?.post(tap: .cghidEventTap)
let event2 = NSEvent.otherEvent(with: .systemDefined, location: NSPoint.zero, modifierFlags: NSEventModifierFlags(rawValue: 0xb00), timestamp: 0, windowNumber: 0, context: nil, subtype: 8, data1: (Int((code << 16 as Int32) | (0xb << 8 as Int32))), data2: -1)
event2?.cgEvent?.post(tap: .cghidEventTap)

(归功于@Alex293)

这是来 self 们的 discussion以编程方式控制键盘亮度的方法:https://github.com/pirate/mac-keyboard-brightness

关于macos - 如何在cocoa中模拟mac媒体键,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18470235/

相关文章:

django - 无法在 Mac 上卸载 Python 2.7.16

java.lang.IllegalArgumentException : Malformed\uxxxx encoding while mvn install

java - 如何为 Java 程序发布补丁

cocoa :如何在 cocoa 中将 nsdate 转换为 nstimeinterval?

c# - 多个键盘和低级 Hook

c# - 如何在 C# 中阻止键盘和鼠标输入?

javascript - Mac 机器上的窗口弹出窗口落后了

macos - SMJobBless 失败,CFErrorDomainLaunchd 代码 9

objective-c - NSView subview 的 Alpha 值

android - 以编程方式更改 Android 键盘布局类型?