繁体   English   中英

检查进程是否有窗口

[英]Checking if a process has a window

在我的 Go 代码中,我正在启动一个外部 GUI 应用程序 (Firefox),并尝试将其设置为前窗口(最顶部的窗口)。 尝试后robotgo ,我发现它不起作用,因为当我调用ActivePID ,窗口仍未加载,因此没有将 robotsgo 设置为最顶部的窗口。

如何检测 Firefox 何时加载了它的 GUI? (以跨平台方式)

cmd := exec.Command("firefox")
cmd.Start()
robotgo.ActivePID(int32(cmd.Process.Pid))
cmd.Wait()

如果有人也遇到这个问题,我发现robotgo有一个名为robotgo.GetPID的API,它获取当前活动窗口的进程ID!

这意味着我们可以反复检查robotgo.GetPID返回我们的目标进程 ID:

for int32(processID) != robotgo.GetPID() {
    robotgo.ActivePID(int32(processID))
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM