【问题标题】:Checking if a process has a window检查进程是否有窗口
【发布时间】:2020-06-20 05:51:27
【问题描述】:

在我的 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】:

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

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

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

    【讨论】:

      猜你喜欢
      • 2012-08-31
      • 1970-01-01
      • 2011-10-30
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-07-06
      • 2012-05-01
      相关资源
      最近更新 更多