2012-03-25 14 views
0

背景我已經通過天尋找過去,試圖找出如何以及是否有可能聽的keydown,而在後臺的事件。使用例如,當節目「用Ventrilo」或「Teamspeak」它可以讓你跟你的視頻遊戲團隊,而玩視頻遊戲。因此,這兩個程序在後臺監聽密鑰。我的問題是這是如何完成的?一些例子,教程將會很棒!我在這方面還很新,所以請描述一下。的Xcode的Mac應用程序:監聽的keydown事件,而像用Ventrilo

回答

2

我知道可可的唯一方法是使用一個全球性的事件監視器。如果您調用下面的方法,該應用程序將監聽控制 -/- 然後發出警報。這種方法的一個可能的問題是,該塊將運行(而不是目前的警報)每次按一個鍵,如果你正在做的事情非常處理器密集型的時間,這可能會有點慢下來。我認爲有一種方法可以在Carbon中做到這一點,但沒有這個問題,但我對Carbon沒有足夠的瞭解。

+(void)listenForKey { 
[NSEvent addGlobalMonitorForEventsMatchingMask:NSKeyDownMask handler:^(NSEvent *event) 
{ 
    NSUInteger key = 44; // 44 is forward slash 
    NSUInteger modifier = NSControlKeyMask | NSAlternateKeyMask; 
    if ([event keyCode] == key && [NSEvent modifierFlags] == modifier) 
     NSRunCriticalAlertPanel(nil,@"Control-alt/was detected",nil,nil,nil); 
    }]; 
} 
+0

那精美的作品!只有一個問題是不可能在開始時不做控制權?你還從哪裏得到關鍵的數字? – 2012-03-25 16:47:21

+0

NVM所有我所要做的就是把NSevent modifierFlags ==修改了!但是你從哪裏得到關鍵數字? – 2012-03-25 16:56:06

+0

你可以在k = 44行的上方添加這行,並在另一個程序中輸入一些密鑰,並記錄密鑰代碼:NSLog(@「%d」,event.keyCode); – rdelmar 2012-03-25 17:35:34