8
A
回答
2
要啓動一個應用程序:
[[NSWorkspace sharedWorkspace] launchApplication:@"App"];
從http://forums.macnn.com/79/developer-center/134947/launch-another-application-from-cocoa/
要退出:
的NSApplication有-terminate:方法:[NSApp terminate: nil];
從How can I tell my Cocoa application to quit from within the application itself?
3
假設這是針對10.6,您可以使用NSRunningApplication
與NSWorkspace
一起。首先,你應該確定應用程序使用已經運行:
[[NSWorkspace sharedWorkspace] runningApplications]
如果它沒有運行,那麼你可以使用NSWorkspace
啓動它,但我建議較新的呼叫,launchApplicationAtURL:options:configuration:error:
,它會返回一個NSRunningApplication
,你可以用來終止應用程序。有關更多詳細信息,請參閱NSWorkspace。
7
正如前面提到的它很容易啓動其他應用程序與NSWorkspace類的幫助,例如:
- (BOOL)launchApplicationWithPath:(NSString *)path
{
// As recommended for OS X >= 10.6.
if ([[NSWorkspace sharedWorkspace] respondsToSelector:@selector(launchApplicationAtURL:options:configuration:error:)])
return nil != [[NSWorkspace sharedWorkspace] launchApplicationAtURL:[NSURL fileURLWithPath:path isDirectory:NO] options:NSWorkspaceLaunchDefault configuration:nil error:NULL];
// For older systems.
return [[NSWorkspace sharedWorkspace] launchApplication:path];
}
你必須做更多的工作,以退出其他應用程序,尤其是如果目標是在10.6之前,但不是太難。這裏是一個例子:
- (BOOL)terminateApplicationWithBundleID:(NSString *)bundleID
{
// For OS X >= 10.6 NSWorkspace has the nifty runningApplications-method.
if ([[NSWorkspace sharedWorkspace] respondsToSelector:@selector(runningApplications)])
for (NSRunningApplication *app in [[NSWorkspace sharedWorkspace] runningApplications])
if ([bundleID isEqualToString:[app bundleIdentifier]])
return [app terminate];
// If that didn‘t work then try using the apple event method, also works for OS X < 10.6.
AppleEvent event = {typeNull, nil};
const char *bundleIDString = [bundleID UTF8String];
OSStatus result = AEBuildAppleEvent(kCoreEventClass, kAEQuitApplication, typeApplicationBundleID, bundleIDString, strlen(bundleIDString), kAutoGenerateReturnID, kAnyTransactionID, &event, NULL, "");
if (result == noErr) {
result = AESendMessage(&event, NULL, kAEAlwaysInteract|kAENoReply, kAEDefaultTimeout);
AEDisposeDesc(&event);
}
return result == noErr;
}
相關問題
- 1. 啓動Mac上的應用程序
- 2. 終止後iPhone應用程序可以重新啓動嗎?
- 3. 用mac應用程序啓動額外的可執行文件
- 4. 使用python啓動和停止mac應用程序
- 5. MAC OS X可可應用程序
- 6. 用C程序啓動和終止cu
- 7. 如何在Mac上啓動「選擇應用程序」對話框?
- 8. 如何在Mac上啓動新應用程序?
- 9. 如何在rails應用程序啓動時啓動線程並在終止時終止它
- 10. 如何在mac上編寫可更新的應用程序
- 11. 應用程序終止
- 12. 終止應用程序
- 13. 可啓動Qt-Linux應用程序
- 14. 如何在應用程序內部啓動應用程序
- 15. 自動阻止應用程序從啓動程序啓動
- 16. 啓動python到mac應用程序
- 17. 如何從AlertDialog終止應用程序?
- 18. 在Mac應用程序中啓動應用程序時,XIB未打開
- 19. 我可以從我的應用程序中啓動android應用程序嗎?
- 20. 如何防止從我的應用程序啓動其他應用程序
- 21. 從應用程序啓動終端
- 22. 應用程序終止上堆大小
- 23. 可可應用程序系統重啓
- 24. 如何防止應用程序在iphone上啓動
- 25. Android應用程序 - mediaplayer始終可用
- 26. 如何在應用程序終止時保存應用程序的狀態?
- 27. 停止的應用程序啓動
- 28. 啓動應用程序時啓動屏幕時應用程序已停止
- 29. 終止另一個應用程序運行 - 可可
- 30. 使用python3在mac osx啓動時啓動應用程序?