问题标签 [nsrunningapplication]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
objective-c - 无法检测到与其他用户一起运行的应用程序(通过切换用户)
用例:我以“ user1 ”身份登录并启动 Safari,然后单击右上角的“ user1 ”并将用户切换到“ user2 ”。现在,我正在尝试检测 Safari 是否正在为“ user1 ”运行,但我无法通过标准调用来执行此操作。我正在使用 OS X 10.8 Mountain Lion 来开发和运行我的代码。
我使用了以下内容但徒劳无功:
[[NSWorkspace sharedWorkspace] runningApplications]
- Safari 不在列表中GetNextProcess()
- Safari 没有出现GetProcessForPID()
- 我收到一个错误“没有这样的过程”
但是当我ps -aef | grep Safari
从终端执行时,我可以看到 Safari。(这不仅适用于 Safari,其他应用程序也是如此。)
有人可以帮忙吗。非常感谢。
macos - 获取从另一个用户运行的应用程序的包标识符
场景是这样的:“我从一个用户运行一个应用程序(比如myproc),然后快速用户切换到第二个用户”
现在,当我尝试确定使用特定捆绑标识符(比如com.ak.myproc)运行的所有进程时; 对于从第一个用户运行的进程,我无法确定这一点。
我尝试了以下但徒劳无功:
[NSRunningApplication runningApplicationsWithBundleIdentifier:]
[[NSWorkspace sharedWorkspace] runningApplications]
然后比较每个应用程序的包标识符 - 为第一个用户运行的应用程序甚至没有出现在此列表中。- 使用
sysctl()
然后遍历进程列表 - 在这里,来自第一个用户的应用程序的 pid 确实来了。在那之后:- 当我尝试
[NSRunningApplication runningApplicationWithProcessIdentifier:]
时,我得到零。 - 当我尝试
GetProcessForPID()
跟随时ProcessInformationCopyDictionary()
,我得到一个 nil 字典。 - 当我尝试
GetProcessForPID()
跟随时GetProcessInformation()
,我没有得到任何有用的东西ProcessInfoRec
。
- 当我尝试
有人可以帮忙吗?谢谢。
操作系统:Mac OS X 10.8.4
Xcode:4.6.2
objective-c - 查找启动 NSRunningApplication 的用户
如何检索此信息?给定一个NSRunningApplication
实例,我需要知道是谁启动了它。活动监视器显示此信息。
objective-c - 如何从 OSX 10.9 中的 ProcessSerialNum 获取 PID?
GetProcessPID
在 OSX 10.9 中被标记为弃用,并附注:
使用适当的 NSRunningApplication 对象的 processIdentifier 属性。
问题是构造类方法NSRunningApplication
无法NSRunningApplication
通过 a获取 a ProcessSerialNum
,只能通过 PID 或捆绑名称获取。
捆绑包名称太模糊(可能有多个实例)并且我没有 PID(这是我想要的)。
在 OSX 10.9 中,有没有办法在您拥有 PSN 时获取 PID?
objective-c - 使用 ProcessSerialNumber 获取 NSRunningApplication
我有一个AppleEventDescriptor
需要获取发送应用程序的包标识符的地方。Apple 事件包含一个typeProcessSerialNumber
可以强制转换为ProcessSerialNumber
.
问题是它GetProcessPID()
在 10.9 中已被弃用,并且似乎没有被认可的方式来获得pid_t
可用于实例化NSRunningApplication
using的 a -runningApplicationWithProcessIdentifier:
。
我发现的所有其他选项都存在于 Processes.h 中,并且也已被弃用。
我是否遗漏了什么,或者我必须忍受这个弃用警告?
objective-c - 在调用 activateWithOptions:NSApplicationActivateIgnoringOtherApps 时将我的应用程序保留为响应者
我正在制作一个 vim 风格的“窗口管理器”,它接受文本输入,很像 Mavericks 中的 Alfred 或 Spotlight(在浮动面板中)。
我遇到的问题是当我调用 activateWithOptions: 在正在运行的应用程序上时,它会从我的窗口中窃取焦点。我希望通过简单地将我的应用程序再次置于前台来解决问题,但是似乎激活在单独的线程上运行,并且我最终在原始应用程序被激活之前激活了我的应用程序。
当我收到 NSWorkspaceDidActivateApplicationNotification 时,我尝试重新激活,但这也不起作用。
理想情况下,我想暂停执行,直到应用程序由于多种原因被聚焦,因为那将是我进一步操作的窗口。
有没有人有什么建议?
ios - 运行应用程序时出错
当我尝试在我的 iPhone 和模拟器上运行我的应用程序时,我得到了这个答案。
架构 arm64 的未定义符号:“_OBJC_CLASS_$_AppDelegate”,引用自:main.o ld 中的 objc-class-ref:未找到架构 arm64 的符号 clang:错误:链接器命令失败,退出代码为 1(使用 -v查看调用)
xcode - 无法杀死的、伪造的 NSRunningApplication 坐在我的 Dock 中?
我在 OSX 10.9.4 上使用 Xcode 5.1.1 来调试 Cocoa + OpenGL 应用程序。到目前为止,我只在 Xcode 调试器下运行过我的应用程序。上周我退出 Xcode 只是为了找到我的应用程序的图标仍在 Dock 中。使用 Show In Finder 将我带到 Xcode 的 DerivedData 中的调试可执行文件。我最终重新启动以摆脱它(更多内容),直到今天一切都很好。但现在我的 Dock 中有两个这样的图标。
问题:这些应用程序不能被杀死!强制退出什么都不做。它们不会显示在使用“ps aux”或活动监视器的进程列表中。Restart 只是陷入了一个试图摆脱它们的循环。只有强制重启 Mac 才有效。
根据 NSWorkspace 的 runningApplication 方法,有 NSRunningApplication 实例与这些应用程序相关联。但是进程 ID 与实际进程不对应。控制台日志中没有任何相关内容。
其他人遇到过这种情况吗?让 NSWorkspace 摆脱虚假的 NSRunningApplication 实例有什么建议吗?
objective-c - 过滤 [NSWorkspace runningApplications] 以仅包含用户应用程序(无守护程序/UIAgents)
[NSWorkspace runningApplications]
除了手动检查每个应用程序的 plist 是否有 UIAgent 键之外,有没有办法过滤由提供的应用程序列表以隐藏所有守护程序等?如果应用程序没有显示在 Dock 中,我对此不感兴趣。
macos - Finder 在辅助显示器上没有响应 [NSRunningApplication activateWithOptions]
我正在尝试将 Finder 窗口置于前面:
这适用于主要的内置显示器。但在我的外接显示器上,调用-activateWithOptions
. 这是预期的行为吗?它是一个错误吗?