我如何计算 Go 中的鼠标点击次数?
How can I count mouse clicks in Go?
我正在尝试编写一个程序来计算自启动后每 30 秒按下鼠标左右键的次数,以便获得鼠标的统计信息 activity。但它不计算单个右键单击,它计算右键单击为左键单击 + 右键单击组合。即使根本没有点击,它也不会在 30 秒后输出结果,而是在 30 秒后等待按下鼠标按钮。我很难过。我应该改变什么来解决这个问题?这是我的代码。
package main
import (
"fmt"
"github.com/go-vgo/robotgo"
"time"
)
const t = 30
func leftclickcounter () (int) {
nowTime := time.Now().Unix()
nowTime = time.Now().Unix()
NumOfLeftClick := 0
for {
lmb := robotgo.AddMouse("left" )
if lmb {
fmt.Println("leftclick")
NumOfLeftClick++
}
if time.Now().Unix()-nowTime >= t {
return NumOfLeftClick
}
}
}
func rightclickcounter () (int) {
nowTime := time.Now().Unix()
nowTime = time.Now().Unix()
NumOfRightClick := 0
for {
rmb := robotgo.AddMouse("right")
if rmb {
fmt.Println("rightclick")
NumOfRightClick++
}
if time.Now().Unix() - nowTime >= t {
return NumOfRightClick
}
}
}
func main() {
for {
lc := leftclickcounter()
rc := rightclickcounter()
fmt.Println("Number of leftclicks:", lc)
fmt.Println("Number of rightclicks:", rc)
}
var input string
fmt.Scanln(&input)
}
除了Flimzy
提到的经过时间
你是 运行 无限循环中的无限循环,rightclickcounter() 永远不会执行。至少不在你的时间范围内。
当前,您正在启动 lc 计数器 -> 等待 30 秒 -> 启动 rc 计数器 -> 等待 30 秒
for {
lc := leftclickcounter()
rc := rightclickcounter()
fmt.Println("Number of leftclicks:", lc)
fmt.Println("Number of rightclicks:", rc)
}
看看https://gobyexample.com/goroutines and https://tour.golang.org/concurrency/2
我正在尝试编写一个程序来计算自启动后每 30 秒按下鼠标左右键的次数,以便获得鼠标的统计信息 activity。但它不计算单个右键单击,它计算右键单击为左键单击 + 右键单击组合。即使根本没有点击,它也不会在 30 秒后输出结果,而是在 30 秒后等待按下鼠标按钮。我很难过。我应该改变什么来解决这个问题?这是我的代码。
package main
import (
"fmt"
"github.com/go-vgo/robotgo"
"time"
)
const t = 30
func leftclickcounter () (int) {
nowTime := time.Now().Unix()
nowTime = time.Now().Unix()
NumOfLeftClick := 0
for {
lmb := robotgo.AddMouse("left" )
if lmb {
fmt.Println("leftclick")
NumOfLeftClick++
}
if time.Now().Unix()-nowTime >= t {
return NumOfLeftClick
}
}
}
func rightclickcounter () (int) {
nowTime := time.Now().Unix()
nowTime = time.Now().Unix()
NumOfRightClick := 0
for {
rmb := robotgo.AddMouse("right")
if rmb {
fmt.Println("rightclick")
NumOfRightClick++
}
if time.Now().Unix() - nowTime >= t {
return NumOfRightClick
}
}
}
func main() {
for {
lc := leftclickcounter()
rc := rightclickcounter()
fmt.Println("Number of leftclicks:", lc)
fmt.Println("Number of rightclicks:", rc)
}
var input string
fmt.Scanln(&input)
}
除了Flimzy
提到的经过时间你是 运行 无限循环中的无限循环,rightclickcounter() 永远不会执行。至少不在你的时间范围内。
当前,您正在启动 lc 计数器 -> 等待 30 秒 -> 启动 rc 计数器 -> 等待 30 秒
for {
lc := leftclickcounter()
rc := rightclickcounter()
fmt.Println("Number of leftclicks:", lc)
fmt.Println("Number of rightclicks:", rc)
}
看看https://gobyexample.com/goroutines and https://tour.golang.org/concurrency/2