golang實現模擬鍵盤按鍵


公司前段時間要我寫個小項目需要可以局域網內一個ipad控制另一台pc上的鍵盤輸入,github上找了找,居然有個robotgo庫這么神級的存在,感覺go的庫真是越來越多了,雖然大部分都是第三方的。https://github.com/go-vgo/robotgo

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

 

 

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   (自己網盤里有)

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

gcc環境弄好之后就ok了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM