objective-c - 终止另一个正在运行的应用程序 - Cocoa

标签 objective-c cocoa terminate

如何终止在 cooca 中运行的另一个应用程序。假设我正在运行 iTunes,然后在我的应用程序中输入 quit,它会退出 iTunes。 “iTunes”只是一个例子,它可以是用户想要的任何东西。我可以从我的应用程序打开任何应用程序,但我想知道如何关闭任何正在运行的应用程序。

谢谢

凯文

最佳答案

AppleScript 是一种发送单个 Quit 事件的高级方法。 SIGTERM 是一种相当蛮力的低级方法。

退出另一个应用程序的正确方法是获取其进程序列号 (psn) 并使用以下两行代码向其发送 kAEQuitApplication Apple 事件:

result = AEBuildAppleEvent( kCoreEventClass, kAEQuitApplication, typeProcessSerialNumber, &currentProcessPSN,
sizeof(ProcessSerialNumber), kAutoGenerateReturnID, kAnyTransactionID, &tAppleEvent, &tAEBuildError,"");
result = AESend( &tAppleEvent, &tReply, kAEAlwaysInteract+kAENoReply, kAENormalPriority, kNoTimeOut, nil, nil );        

您可以从 C、C++ 或 Objective-C 执行此操作,并且您必须链接到 CoreServices.framework。

关于objective-c - 终止另一个正在运行的应用程序 - Cocoa,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1469534/

相关文章:

iOS:在音频单元中动态更改采样率

objective-c - NSStatusBarButton 保持高亮

java - 在主线程/程序终止时运行方法?

iphone - 在退出iOS应用之前显示消息?

c++ - 如何在WP8上使用cpp使用 “Application.Current.Terminate”

Objective-c:如何使用 NSApplicationMain

iOS - 删除 Recurring EKEvent,事件再次出现

iphone - 相当于 Core Data 的 GROUP BY

swift - NSScrollView 包含 NSStackView。为什么 NSStackView 项目从底部到顶部?