2009-09-04 114 views
0

我希望能夠將按鍵從一臺計算機發送到另一臺計算機。我在用於耳機的一個系統上有一個語音應用程序,而另一個系統是我的主系統。語音應用程序使用一鍵通(PTT)系統,我寧願保留它。通過網絡發送按鍵

所以我想要做的是按我的主系統上的一個鍵,並將它通過網絡發送到我的輔助系統。在這個階段,我只知道如何通過網絡獲得密鑰,實際檢測我的主系統上按鍵的具體情況以及在輔助系統上模擬按鍵是我的問題。

我想要捕獲(按住時)併發送到我的輔助系統的密鑰是正確的控制鍵。我認爲最好的方法是添加一個鍵盤鉤子。

我該如何做到這一點,我可以在我的主系統上的任何應用程序中選擇正確的控件,並讓此應用程序選擇併發送它?當我的輔助系統收到密鑰時,如何將它發送給整個系統(而不是試圖找到特定的應用程序)?我很擅長在非託管C++中使用低級別的Win32調用,我只是想知道如何使這個工作。

在此先感謝。

回答

0

我找到了答案:我寫了一個小鍵盤掛鉤來拿起PTT按鍵,然後通過網絡將它發送到輔助系統。輔助系統使用此按鍵並使用SendInput函數將密鑰插入系統輸入隊列。我剛剛用Teamspeak進行測試,它的出色工作

+0

對於任何感興趣的人來說,實際的源代碼(以及Linux的代碼)現在都在這裏:http://code.google.com/p/netkeys。 – 2009-09-05 10:41:57

1

您似乎已經到了您自己的自定義解決方案的一半,但作爲替代方案,您可能需要查看Synergy開放源代碼鍵盤和鼠標擴展器。

+0

我目前正在使用Synergy,但據我所知,它並沒有提供一種方法將一個系統上的按鍵發送到沒有「焦點」(即其他系統)的屏幕上,這是什麼我在找。我想可以修改它。 +1不管。 – 2009-09-04 06:09:56

+0

是的,你說得對,我沒有考慮這裏的一些微妙之處。在您的主系統上,當您按住正確的ctrl鍵,將按鍵傳遞到主系統然後返回時,您可能可以在某些設備上切換到Synergy。 – 2009-09-04 06:32:07

+0

聽起來相當複雜...我想我在Google上查找一些東西,這涉及到鍵盤鉤子和SendInput函數(http://msdn.microsoft.com/zh-cn/library/ms646310 (VS.85)的.aspx)。不管怎麼說,還是要謝謝你! – 2009-09-04 06:43:59