模拟背景应用上的按键

时间:2015-05-06 07:22:08

标签: macos swift

我正在制作一个OSX应用程序(用于艺术项目),该应用程序在后台录制中运行并对用户输入作出反应。我知道如何在应用程序处于后台时跟踪按键操作,但我无法弄清楚如何模拟这些按键并在后台运行时更新应用程序。

首先在应用程序处于后台时跟踪按键的代码。这是在我的viewDidLoad函数 -

NSEvent.addGlobalMonitorForEventsMatchingMask(NSEventMask.KeyDownMask, handler: handleKeyDownEvent);

下面是相应的偶数监听器功能,我想也许我可以通过使用CGEventCreateKeyboardEvent来模拟按键,但它会更新焦点应用程序而不是后台应用程序 -

func handleKeyDownEvent(event:NSEvent!) {
    //try to simulate a keyboard press that updates background app
    println("key down is \(event.keyCode)");
    var e:CGEventRef = CGEventCreateKeyboardEvent(nil, 7, true).takeRetainedValue();
    CGEventPost(CGEventTapLocation(kCGHIDEventTap), e);
    //CFRelease(e);how do I use CFRelease in swift?
}

任何想法将不胜感激,谢谢!

0 个答案:

没有答案