问题标签 [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.

0 投票
0 回答
299 浏览

objective-c - 使用 runningApplicationWithProcessIdentifier: 和 OSXFuse 获取进程名称

我正在使用 OSXFuse 并获取要在 Mac 上的 FUSE 文件系统中读取文件的应用程序的 processID。使用 OSXFuse [GMUserFileSystem currentContext],我们获取进程 ID,现在我想从这个进程 ID 中获取应用程序名称。大多数时候,Finder 是调用进程,它在当前登录的用户权限下运行。我正在尝试将进程 ID 传递runningApplicationWithProcessIdentifier:给以获取进程详细信息,包括其名称。但是runningApplicationWithProcessIdentifier:返回零。我已确保进程 ID 有效并且在用户权限下。可能有什么问题?

我知道还有其他方法,例如使用一些基于原始 C 的 api 来获取进程名称,但我想使用它来获取它,runningApplicationWithProcessIdentifier:因为它可以提供更多有用的信息

0 投票
0 回答
1781 浏览

android - 安卓用户活动日志

我想制作一个 android 服务,它将继续在后台运行并跟踪用户使用了哪些应用程序以及他使用该应用程序的次数。例如

0 投票
3 回答
1685 浏览

swift - 如何为所有正在运行的应用程序添加监听器

我想显示所有正在运行的应用程序名称的列表。

问题:它不会添加调用函数后正在运行的应用程序。因此,它不会同时将应用名称添加到列表中。

目标:我想添加一个监听器,所以如果一个新的应用程序正在运行,它将同时将它添加到数组中,而无需重新启动应用程序或再次调用该函数。

0 投票
1 回答
319 浏览

swift - NSRunningApplication terminate() 返回 false

构建一个获取当前活动的 macOS 应用程序NSRunningApplication

之后,我只是尝试使用终止应用程序

它不会终止应用程序并返回 false(这适用于任何应用程序,而不仅仅是特定应用程序)。

我也试过了app.forceTerminate()

请注意,我已经将我的应用程序添加到系统偏好设置的辅助功能列表中。

您对这可能是什么原因有任何线索吗?

谢谢!

0 投票
1 回答
50 浏览

macos - 更准确地识别 Mac OS 上正在运行的应用程序

通过使用 NSWorkspace 的 runningApplications,可以获得 Mac OS 上正在运行的应用程序列表作为 NSRunningApplication 对象,并从中获取附加信息,例如前台的应用程序。

可以使用它们的名称 (localizedName) 来识别正在运行的应用程序,但我确信这可能会被流氓应用程序欺骗。bundleIdentifier 之类的其他东西似乎更好,但我相信这也可能被欺骗。

我想几乎所有的元数据都可能被公共应用商店之外的应用程序欺骗,但是对于从应用程序商店获得的任何应用程序,像 bundleIdentifier 这样的东西应该是识别应用程序的安全方法,对吧?

如果我们包含某人从 Internet 下载的任意应用程序,是否有更好的方法来识别应用程序以过滤掉流氓应用程序?我意识到可能没有没有缺点的解决方案,但要尽最大努力尝试。

0 投票
0 回答
156 浏览

macos - NSRunningApplication unhide 不会取消应用程序的最小化

使用 [NSRunningApplication unhide] 后,应用程序窗口不会取消最小化。如果我使用 [NSRunningApplication activateWithOptions: NSApplicationActivateIgnoringOtherApps] 只有应用程序的菜单出现在顶部。另外,如果我手动隐藏应用程序,[NSRunningApplication isHidden] 总是返回 false。

我在这里错过了什么吗?

为了澄清我想要做什么:我需要通过进程 ID 将应用程序带到前台。如果应用程序没有被最小化,“activateWithOptions”工作得很好,但如果它被最小化,什么都不会发生,“unhide”什么也不做。

0 投票
0 回答
418 浏览

swift - 如何使在 macOS 上运行的应用程序浮动在其他应用程序之上?

我正在制作一个可以将正在运行的应用程序窗口设置为浮动在其他应用程序之上的应用程序,这样如果您在应用程序窗口之外单击,它的窗口仍将保留在屏幕上。

我曾尝试使用app.activate(options: NSApplication.ActivationOptions.activateIgnoringOtherApps)where appis the frontmost running application by 设置app = NSWorkspace.shared.frontmostApplication,但此方法仅显示窗口,当您在应用程序外部单击时,它会再次隐藏。

我想将正在运行的应用程序的窗口设置为浮动,这样当您在窗口外单击时,该应用程序仍应在其他应用程序上方保持可见。

0 投票
1 回答
117 浏览

macos - 在前景化后立即将键盘事件注入 NSRunningApplication

我正在尝试将一个NSRunningApplication*实例置于前台,并注入一个键盘事件。

... 无法注入键盘事件,但是:

...成功。

我想窗口在前台渲染需要一定的时间,这可能发生在一个单独的线程上,这解释了注入失败。

然而,这是一个非常丑陋的解决方案。它依赖于任意时间间隔。

以某种方式等待窗口完成前景化会更干净。

有没有办法做到这一点?

PSinject_keystrokes()用途CGEventPost(kCGHIDEventTap, someCGEvent)

PPS 参考:
-虚拟按键进入错误的应用程序
-将 NSEvent 发送到后台应用程序
- http://advinprog.blogspot.com/2008/06/so-you-want-to-post-keyboard-event-in.html

0 投票
0 回答
543 浏览

python-3.x - 在 Windows 10 上运行 Python 代码后控制台立​​即关闭

尽管我input()在代码末尾使用,但在 Windows 10(IDLE 之外)的窗口中输入名称后,控制台仍会立即关闭,并且我看不到结果。我能做些什么来阻止控制台关闭?

0 投票
0 回答
537 浏览

swift - 如何检测 Swift 应用程序的另一个实例已经在运行

我试图在我的 Swift 应用程序中检测一个实例是否已经在运行,如果是这样,请避免用户启动另一个实例。我正在使用 NSRunningApplication 类来检测此类行为,但无法使其正常工作。我已经阅读了一些较旧的帖子,并且知道 flock() 是一种较低级别的检测方法,但如果可能的话,我更愿意“以 Swift 的方式进行操作”。这是代码片段:

无论我尝试打开多少个会话,返回的计数似乎始终为 1。知道出了什么问题,还是我没有在正确的地方调用此检查?

此外,我的应用程序还允许用户双击具有我定义的文件扩展名的文件来启动应用程序。我假设如果我可以使上述工作,那么它也应该适用于这种情况吗?

更新:

在使用 Activity Monitor 查看我的应用程序的启动行为后,我想我已经确定了观察到的行为的来源。

完全披露,我的应用程序创建了一个新进程来启动控制台应用程序,并将等待该进程完成并终止。更新了以下代码片段:

现在,当应用程序首次启动时,最初创建了两个进程:mySwiftApp 和 myConsoleApp。但是,由于调试对话框的存在,mySwiftApp 进程会在 myConsoleApp 启动后终止。结果,mySwiftApp 的实例计数现在为 0。因此,后续启动 mySwiftApp 将成功,现在系统上运行了两个 myConsoleApp 进程。我不清楚为什么警报框的存在会终止 mySwiftApp 进程,但我怀疑它会向我的应用程序发送终止信号并更改其终止状态。

如果调试对话框不存在,由于 waitUnitlExit() 设置,任何启动第二个实例的尝试都不会被看到,并且基本上会掉到地上。虽然这是“期望的”行为,因为无法启动第二个实例,但最好有办法通知用户。

知道这样做的最佳方法是什么吗?