Я хочу запустить файл с указанным приложением и хочу, чтобы запущенная программа сразу стала самым передним окном.
Я знаю, что могу сделать это следующим образом:
[[NSWorkspace sharedWorkspace] openFile:fileName withApplication:appName];
Затем, если мне удастся получить PID этого запущенного приложения, я смогу сделать это, чтобы приложение было первым:
NSRunningApplication* app = [NSRunningApplication
runningApplicationWithProcessIdentifier: PID];
[app activateWithOptions: NSApplicationActivateAllWindows];
Вопрос, который у меня возникает, заключается в следующем: каков самый простой, быстрый и надежный способ получить PID этого приложения сразу после запуска, чтобы я мог убедиться, что это приложение является передним?
Это не так просто, как может показаться на первый взгляд. Например, мне нужно имя процесса, чтобы получить PID с помощью вызовов Carbon или через словарь приложения, доступный через NSRunningApplication
. Однако в общем случае я не всегда знаю, как называется процесс, а в некоторых случаях имя процесса представляет собой пустую строку.
Кроме того, у меня уже могут быть запущены другие экземпляры этого приложения, и я хочу всегда получать PID конкретного экземпляра приложения, которое я только что запустил.
Кто-нибудь может предложить точный, 100-процентный надежный способ получения PID запущенного приложения?
Или, альтернативно, есть ли способ запустить указанный файл с указанным приложением, чтобы приложение всегда открывалось как самое переднее приложение?