Robotgo不能监听多个事件



我正在使用robotgo来监听键盘事件。我想为按下的每一个键添加我自己的功能,但我无法让它触发超过一个键。

主要功能如下:

func main() {
go addKeyListen("l")
go addKeyListen("k")
}

包装器功能:

func addKeyListen(key string) {
for {
if ok := robotgo.AddEvent(key); ok {
fmt.Println("Pressed "+key)
}
}
}

按下L后,我得到的只是Pressed l和多次,但我可以用一个标志来解决这个问题。按K不会打印任何内容。

尝试了以下操作:

for {
if okA := robotgo.AddEvent("k"); okA {
fmt.Println("Pressed k")
}
if okB := robotgo.AddEvent("l"); okB {
fmt.Println("Pressed l")
}
}

首先按K,然后按L,然后一遍又一遍地重复这个似乎会触发事件,但如果我更改按键顺序,则不会触发。所以如果我先从L开始,然后从K开始,什么都不会发生。

PD:使用MinGW64版本x86_64-8.1.0-posix-seh-rt_v6-rev0 从windows 10进行测试

还尝试了从4开始的不同版本的MinGW,结果相同。。。

尝试这样的东西,基于robotgo和它使用的lib,在mac10.14:上测试

package main
import (
"fmt"
"github.com/go-vgo/robotgo"
gohook "github.com/robotn/gohook"
)
func main() {
eventHook := robotgo.Start()
var e gohook.Event
var key string
for e = range eventHook {
if e.Kind == gohook.KeyDown {
key = string(e.Keychar)
switch key {
case "k":
fmt.Println("pressed k")
case "l":
fmt.Println("pressed l")
default:
fmt.Printf("pressed %s n", key)
}
}
}
}

:(

相关内容

  • 没有找到相关文章

最新更新