gpt4 book ai didi

cocoa - Mac 上单实例应用程序的理想方式

转载 作者:行者123 更新时间:2023-12-03 16:07:03 27 4
gpt4 key购买 nike

在 Windows 上,常见的做法是创建一个命名互斥体,并使用该互斥体的存在来确定给定应用程序的实例是否已在运行。这有其缺点,但大多数情况下有效。

我可以想出一种在 Mac 上执行此操作的方法:

  1. 命名 pthread 互斥体
  2. 枚举正在运行的进程并查找匹配的进程
  3. 创建并锁定文件

Cocoa/Carbon 中是否有内置的东西比上面的选项更容易?如果不是,那么这三个中哪一个在 Mac 上最常用?我假设 2 或 3...

最佳答案

进一步详细说明如何使用 NSWorkspace。尝试在 NSWorkspace 中使用 launchApplications。这将返回一个 NSArray,其中包含每个启动的应用程序的字典。您可以循环遍历该数组以查看您正在查找的应用程序是否已在运行。我建议您使用带有键 NSApplicationBundleIdentifier 的值,该值将具有类似“com.mycompany.myapp”的值,而不是查找名称。如果您需要查找应用程序的 bundle 标识符,您可以查看应用程序包中的 info.plist 文件。

关于cocoa - Mac 上单实例应用程序的理想方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1081218/

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