2010-05-25 30 views
1

嘿傢伙,我想寫一個應用程序(服務器),它從客戶端接收鍵盤指令,並在服務器端執行它們。它更像那些記錄你的鍵盤和鼠標事件並重放它們的屏幕錄像機。例如,你在服務器上拉出一個textedit,在客戶端輸入任何你喜歡的東西,你就可以在服務器上看到這些字母。與可可的鍵盤互動?

我沒有線索我應該看看哪些材料,有什麼建議?

回答

2

好吧,我看到它的方式有很多涉及這個堆棧的技術。在客戶端上

我已經做了第一個(在後方疼痛弄清楚,但一旦你擁有它,它也不是太糟糕),並與第三一點的工作項目(雖然這是一些非常深的魔咒)。第二個實際上可能是最簡單的(可以通過MYNetwork框架或內置Cocoa的類來解決。)

+0

爲什麼你需要下降到IOKit捕獲按鍵?爲什麼不使用'CGEventTap'? – 2010-05-25 08:04:28

+0

啊 - 好點。所以你需要IOKit,如果你想讓你的服務器應用程序處於後臺並記錄事件而其他應用程序是最前面的。如果服務器應用程序的最前面是一個好的要求,那麼是的,CGEventTap會正常工作。我忘記了前景選項,因爲我的一個客戶端應用程序(也是這種類型的)需要在後臺工作。我已經添加了一個鏈接到CGEventTap在我的答案 – RyanWilcox 2010-05-25 12:11:54

1

您可以使用CGEventTap以相當低的級別記錄事件,並將事件注入事件流。我曾用它來記錄和回放一系列有時候進行測試的事件。

如果您正在編寫可可的應用程序,您可以實現自定義NSApplication的sendEvent:方法來記錄發送到您的應用程序的所有事件。如果服務器也是可可,你可以使用相同的sendEvent:方法來處理一些事件。

您還可以查看CGRemoteOperation以發佈活動。它被CGEventTap棄用,但更易於使用。

+0

我會,如果它會解決服務器自服務器運行後臺 – user302581 2010-05-25 16:00:59