2011-02-18 120 views
0

使用碳框架中的InstallApplicationEventHandlerRegisterEventHotKey,我可以捕捉任何我想要的键。可可/碳:当按住键时抓住全局热键(按住)

相反,我无法找到一种方法来正确处理事件,当一个按键被按下(保持按下)。我的意思是,当我按下一个键时,RegisterEventHotKey响应,如果我按下然后释放了键;我希望它不断发送“事件”,直到密钥被释放。

我真正想实现的,准确地说,当保持按压键是这样的:

只要键被按下并按住我想要那个InstallApplicationEventHandlerRegisterEventHotKey创建一个事件,但不是唯一一次(正如我现在),但每过x毫秒左右,直到钥匙被释放。

我正在考虑的特定键是而不是修饰键。

你能帮我吗?我真的变得疯了!

回答

0

也许开始每0.25秒启动一个计时器或者检查是否合适的键仍然关闭。如果是,则重新调用该操作。否则,使计时器无效。

+0

非常感谢你,它的作品是这样的! – Andrea3000 2011-02-19 10:25:49

1

您需要使用事件点击; RegisterEventHotKey不够灵活,无法做到您想要的。检查出Event Taps Testbenchdocumentation

+0

或者,在Mac OS X 10.6及更高版本中,使用基于块的等效项。 http://developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/Reference/Reference.html#//apple_ref/occ/clm/NSEvent/addLocalMonitorForEventsMatchingMask:handler:http:// developer.apple.com/library/mac/documentation/Cocoa/Reference/ApplicationKit/Classes/NSEvent_Class/Reference/Reference.html#//apple_ref/occ/clm/NSEvent/addGlobalMonitorForEventsMatchingMask:handler: – 2011-02-19 06:15:34