cocoa - 获取按上次使用顺序排列的正在运行的应用程序列表

标签 cocoa list process

我想按照执行 ⌘ + ⇥ 时出现的顺序获取正在运行的应用程序列表

即如果我使用TextEdit,然后预览,然后iCal,顺序是

  1. iCal
  2. 预览
  3. 文本编辑

使用[[NSWorkspace共享工作空间]launchApplications]不起作用,因为应用程序是按启动日期/进程ID排序的。使用 GetNextProcess 进行枚举也不起作用,因为它也是按 pid 排序的。

自己注册通知并维护列表不是一个选择,因为我必须在应用程序启动后立即知道该列表。好吧,列表的第一个元素实际上就足够了,但我认为这几乎是同一个问题。

是否有一些 API 可以获取此信息?

最佳答案

也许是这样的:

cd /System/Library/Frameworks/CoreServices.framework/Frameworks/LaunchServices.framework
nm LaunchServices | grep __LSCopyApplicationArrayInFrontToBackOrder

关于cocoa - 获取按上次使用顺序排列的正在运行的应用程序列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/945033/

相关文章:

cocoa - 我如何执行 shell 脚本并在 cocoa 中关闭我的应用程序

python - 如何在 Python 中获取列表中元素的数量(列表的长度)?

linux - 在 Linux 中,我如何才能等到我没有启动的进程完成?

java - 在Java进程上调用Windows10计算器?

python - 使用 Paramiko exec_command 运行命令会导致进程在完成之前进入休眠状态

macos - 更改 NSCollectionView 在移动鼠标时拖动图像

ios - 转换任何对象?到字符串

cocoa - 如果在其他应用程序中按下全局键盘快捷键,如何防止发出蜂鸣声?

java - 使用 Java Streams 从超集中获取子集

python,将列表转换为相似的子列表