Synergy簡介
功能:
同一區域網路中多台機器共享一套鍵盤滑鼠,支援Windows、Linux、MAC裝置,滑鼠鍵盤實體連接配接的機器做伺服器端,其他機器做用戶端程式,在伺服器端對各台機器進行簡單配置,在用戶端輸入伺服器端IP位址或網絡名,即可體驗其強大功能。
特點:
開源、配置簡單、功能強大
結構:
synergy.exe - 主程式,或者說是synergy的UI配置程式
synergys.exe - 伺服器端程式,配置為伺服器端的電腦,該程序會常駐記憶體
synergyc.exe - 用戶端程式,配置為用戶端的電腦,該程序會常駐記憶體
synergyd.exe - 看門狗服務,此服務關閉後,一段時間内,還可以實作滑鼠鍵盤的共享,但是過了這段時間,伺服器和用戶端将斷開連接配接(暫時沒有深入研究内部的細節)
有關Synergy的更多細節,網上已經有很多介紹,這裡不再贅述。
編譯動機
鄙人已經與Synergy相處兩年有餘,由于其種種有點,經常在公司推薦與他人使用,屢屢獲贊,近期偶然發現測試機卡慢,用任務管理器一探究竟,猛然發現,居然是神器(Synergy)在作怪,服務程式(synergyd.exe)獨占一個CPU核心,鄙人公司用的測試機還是雙核的,有些甚至是單核的。于是決定重新編譯一下Synergyd.exe,其他程序暫時未發現異常,暫不處理。
準備工作
手頭有VS2012、據github介紹。需要裝VS2015、Qt5.6、CMake、Python、Wix、Bonjour SDK,進行種種配置,于是乎,開始安裝VS2015(整整一天呐@_@)
安裝Qt,最後發現這些東西用到的不多,此處省略吐槽一萬次。。。
步入正題:
1、下載下傳最新的Synergy源碼
2、VS任意一個版本(鄙人對VS還算比較熟悉,也是因為之前的誤導,體驗了一下VS2015)
3、如果不喜歡VS,可以使用其他任意一款C++編譯工具(本文隻談VS的編譯過程,其他編譯工具可能有所差别)
4、CMake
操作步驟
1、CMake和源碼解壓
2、CMake Bin 目錄下執行gui程式
3、将源碼位置配置到CMake中,然後執行Configure,然後選擇輸出項目類型
4、選擇合适的編譯器,點Finish
5、點選Generate,生成項目檔案
6、到輸出目錄找到 synergy.sln 在vs中打開項目
7、修改項目屬性 ->配置屬性->正常->平台工具集->Visual Studio 2015 - Windows XP (v140_xp)
8、修改項目屬性 ->配置屬性->C/C++->代碼生成->運作庫->多線程(/MT) (取消連接配接運作時)
9、按照步驟7、 8 修改所有依賴項目,詳細參考依賴項目說明。
10、編譯方式使用Release編譯
11、修改代碼後,即可編譯出自己想要的Synergy了
synergyd依賴項目
synergy
platform
net
mt
ipc
io
common
base
arch
client
本次探索還是要網上各位大神的指導,讓我快速了解了CMake、Qt等強大的工具,寫此文也是想回饋廣大網友,由于個人水準有限,文采也不好,還請大神們路過輕拍,如果有描述的不對的,還請多多指點!
同時,本文隻是對守護服務程式Synergyd.exe進行了修改編譯,解決了CPU占用高的缺陷,測試未發現異常。針對系統為Windows系統,對于Linux和Mac平台的編譯本文不涉及。