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了。图片

相关文章
相关标签/搜索