golang實現模擬鍵盤按鍵

公司前段時間要我寫個小項目須要能夠局域網內一個ipad控制另外一臺pc上的鍵盤輸入,github上找了找,竟然有個robotgo庫這麼神級的存在,感受go的庫真是愈來愈多了,雖然大部分都是第三方的。https://github.com/go-vgo/robotgogit

原理很簡單,時間有限boss要一天就搞出來,全部沒有采用我不熟悉的局域網廣播技術,而是直接在在目標pc上用go啓了個服務器,ipad端按下某個按鍵以後發送協議到pc的服務器上,服務器監聽到協議後交給robotgo庫來模擬鍵盤按鍵便可。github

 

 

package main

import (
	"fmt"
	"log"
	"net/http"

	"github.com/go-vgo/robotgo"
)

func main() {
	fmt.Println("=-=-=-==-=-=-=-=-=-\nController-PC start...\nPC端佔用端口號爲:9090\n=-=-=-==-=-=-=-=-=-")

	//192.168.30.12
	http.HandleFunc("/", receiveClientRequest)

	err := http.ListenAndServe(":9090", nil)
	if err != nil {
		log.Fatal("ListenAndServe: ", err)
	}

}

func receiveClientRequest(w http.ResponseWriter, r *http.Request) {
	r.ParseForm()
	//	fmt.Println("收到客戶端請求: ", r.Form)

	var key string = r.FormValue("key")
	fmt.Println("received key: ", key)

	robotgo.KeyTap(key)

}

  

代碼量不多幾行,但在一個問題上卻耗費好幾個小時,那就是在頭幾回編譯robotgo庫時會失敗,提示幾處錯誤,具體不記得了,大概一個問題就是機器沒有gcc環境,須要安裝gcc, 另外一個是有了gcc以後還須要在gcc環境裏包含zlib和libpng的庫,由於robotgo不單單是作鍵盤鼠標模擬,還能作一些圖片處理之類的事,最終要應該是直接用了github上robotgo推薦的帶有zlib和libpng庫的gcc環境:服務器

https://github.com/go-vgo/Mingw   (本身網盤裏有)orm

下載好以後貌似無需安裝直接放到C盤,配置一下環境變量: C:\Mingw\bin 加入 PATH. blog

gcc環境弄好以後就ok了。圖片

相關文章
相關標籤/搜索