检查进程是否有窗口

问题描述 投票:0回答:1

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

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

cmd := exec.Command("firefox")
cmd.Start()
robotgo.ActivePID(int32(cmd.Process.Pid))
cmd.Wait()
go window exec topmost
1个回答
0
投票

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

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

for int32(processID) != robotgo.GetPID() {
    robotgo.ActivePID(int32(processID))
}
© www.soinside.com 2019 - 2024. All rights reserved.