gpt4 book ai didi

objective-c - 获取最近启动的应用程序的 PID 的最简单方法

转载 作者:太空狗 更新时间:2023-10-30 03:54:13 25 4
gpt4 key购买 nike

我想启动一个带有指定应用程序的文件,我希望启动的程序立即成为最前面的窗口。

我知道我可以这样做:

[[NSWorkspace sharedWorkspace] openFile:fileName withApplication:appName];

然后,如果我可以获得那个已启动应用程序的 PID,我就可以执行此操作以使该应用程序位于最前面:

NSRunningApplication* app = [NSRunningApplication
runningApplicationWithProcessIdentifier: PID];
[app activateWithOptions: NSApplicationActivateAllWindows];

我的问题是:什么是最简单、最快捷、最可靠的方法来在启动后立即获取此应用程序的 PID,以便我可以确保此应用程序位于最前面?

这并不像乍看起来那么简单。例如,我需要一个进程名称以便使用 Carbon 调用或通过可通过 NSRunningApplication 访问的应用程序字典获取 PID。但是,在一般情况下,我并不总是知道进程名称是什么,在某些情况下,进程名称是一个空字符串。

此外,我可能已经运行了同一个应用程序的其他实例,并且我希望始终获取我刚刚启动的应用程序的特定实例的 PID。

谁能建议一种确定的、100% 可靠的方法来获取当前启动的应用程序的 PID?

或者,是否有一种方法可以使用指定的应用程序启动给定的文件,以便该应用程序始终作为最前面的应用程序打开?

最佳答案

您是否尝试过使用其他版本的 openFile 来停用您的应用程序,让新应用程序获得焦点?

[[NSWorkspace sharedWorkspace] openFile:fileName withApplication:appName andDeactivate:YES];

关于objective-c - 获取最近启动的应用程序的 PID 的最简单方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9656127/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com