2010-04-18 70 views
1

創建一個事件你好,我創造,我嘗試添加一個遠程接口的OS X應用程序。爲此,我需要能夠向下發送鼠標和向上滾動命令到我的應用程序的窗口。如何獲取當前eventNumber與NSEvent

我發現代碼,我可以成功做到這一點,如下所示:

int mask = 0x100; 
NSEvent* eventMouseDown = [NSEvent mouseEventWithType:NSLeftMouseDown 
    location:p 
    modifierFlags:mask 
    timestamp:[NSDate timeIntervalSinceSystemStartup] 
    windowNumber:[w windowNumber] 
    context:[NSGraphicsContext graphicsContextWithWindow:w] 
    eventNumber:++eventCounter +42599 clickCount:1 pressure:0]; 
NSLog(@"Mouse down event: %@", eventMouseDown); 
[[NSApplication sharedApplication] sendEvent:eventMouseDown]; 

我只有一個問題,此代碼的思想,這是eventNumer參數。據我瞭解,這是一個隨着每個事件而增加的數字。但我無法找到從我需要增加的地方找到當前號碼的方法。目前我在那裏使用的數字只是嘗試和錯誤,也不縫合工作總是。

+0

什麼用'42599'的? – 2010-04-18 18:42:58

+0

這只是我在測試時添加的一個隨機數。當我第一次寫這段代碼時,我嘗試了0,但這不起作用。所以我嘗試了一些其他的數字,並用這個數字它工作。 但它只是感覺奇怪和hackish的在這裏使用某種神奇的數字。 – Chris 2010-04-19 14:04:41

回答

1

儘量只使用0 eventNumber。

+0

我先試了一下,但是如果我用0這個事件根本就沒有得到sendet。意思是我沒有得到反應。 – Chris 2010-04-19 14:06:13

+0

好吧,我做了一些更多的測試,現在它的接縫也與0一起工作。我不知道爲什麼它以前沒有工作。像我這樣的接縫需要正確地將焦點設置到應用程序。 – Chris 2010-04-19 14:15:12

0

它看起來像事件計數器只是一個序列號,所以它會在0(加42599)創建的每個事件之前啓動,並增加一個。你只需要堅持最後一個值。

我沒有嘗試這樣做我自己,但看起來數量並不重要,只要它是每一次新的號碼。