• 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("=-=-=-==-=-=-=-=-=-
    Controller-PC start...
    PC端占用端口号为:9090
    =-=-=-==-=-=-=-=-=-")
    
    	//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:Mingwin 加入 PATH. 

    gcc环境弄好之后就ok了。

  • 相关阅读:
    网络编程学习小结
    我的学习笔记_Windows_HOOK编程 2009-12-03 11:19
    void及void指针含义的深刻解析
    Android开发之自己定义TabHost文字及背景(源码分享)
    ActionBar自己定义改动无效解决方法
    一位Erlang程序猿的自白
    Xcode 5.1安装插件:规范凝视生成器VVDocumenter
    Socket程序中的Error#10054错误
    CSDN博客清理缓存
    ACM 位运算
  • 原文地址:https://www.cnblogs.com/JD85/p/6382099.html
Copyright © 2020-2023  润新知