Go 检查进程是否有窗口

Go 检查进程是否有窗口,go,window,exec,topmost,Go,Window,Exec,Topmost,在我的Go代码中,我启动了一个外部GUI应用程序(Firefox),并试图将其设置为最前面的窗口(最上面的窗口)。在尝试robotgo之后,我发现它不起作用,因为当我调用ActivePID时,窗口仍然没有加载,所以没有一个窗口可以让robotgo设置为最上面 我如何检测Firefox何时加载了它的GUI?(以跨平台方式) cmd:=exec.Command(“firefox”) cmd.Start() ActivePID(int32(cmd.Process.Pid)) cmd.Wait() 如果

在我的Go代码中,我启动了一个外部GUI应用程序(Firefox),并试图将其设置为最前面的窗口(最上面的窗口)。在尝试
robotgo
之后,我发现它不起作用,因为当我调用
ActivePID
时,窗口仍然没有加载,所以没有一个窗口可以让robotgo设置为最上面

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

cmd:=exec.Command(“firefox”)
cmd.Start()
ActivePID(int32(cmd.Process.Pid))
cmd.Wait()

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

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

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