Проверка, есть ли у процесса окно - PullRequest
0 голосов
/ 07 марта 2020

В моем коде Go я запускаю внешнее приложение GUI (Firefox) и пытаюсь сделать его передним окном (самое верхнее окно). После попытки robotgo я обнаружил, что это не работает, потому что когда я звонил ActivePID, окно все еще не загружалось, поэтому у робота go не было окна для установки на самый верхний уровень.

Как я могу определить, когда Firefox загрузил его GUI? (кроссплатформенным способом)

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

1 Ответ

0 голосов
/ 08 марта 2020

Если кто-то также сталкивался с этой проблемой, я обнаружил, что robotgo имеет API с именем robotgo.GetPID, который получает идентификатор процесса текущего активного окна!

Это означает, что мы можем неоднократно проверять если robotgo.GetPID возвращает идентификатор целевого процесса или нет:

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