Я использую robot go для прослушивания событий клавиатуры. Я хотел бы добавить свои собственные функции для каждой нажатой клавиши, но я не могу заставить ее срабатывать более чем для одной клавиши.
Итак, основная функция выглядит так:
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: Тестирование с windows 10 с версией MinGW64 x86_64-8.1.0-posix-seh-rt_v6-rev0
Также пробовал разные версии MinGW, начиная с 4, и результаты такие же. ..