Как программно открыть приложение OS X (.app), которое содержится в приложении, которое я создаю?Запуск OS X Application Programally
3
A
ответ
4
Предпочтительный способ сделать это на OS X лежит через NSWorkspace
класса, который предоставляет несколько методов для запуска приложений. Один из них: launchApplicationAtURL:options:configuration:error:
позволяет указать URL-адрес файла для запуска приложения. Помимо отсутствия проблем с песочницей, таких как system()
и решения Apple Event, он также дает вам простой способ управлять запуском приложения, например. вы можете указать переменные среды, которые будут переданы в приложение.
0
Вы можете использовать скрипт Apple.
NSDictionary* errorDict;
NSAppleEventDescriptor* returnDescriptor = NULL;
NSAppleScript* scriptObject;
scriptObject = [[NSAppleScript alloc] initWithSource:@"try\n
run application \"Macintosh HD:Applications:_Sandbox-AppleScript0.app\"\n
on error number -609 # 'Connection is invalid' error that is spuriously reported # simply ignore\n
end try"];
if (returnDescriptor != NULL) {
// successful execution
if (kAENullEvent != [returnDescriptor descriptorType]) {
// script returned an AppleScript result
if (cAEList == [returnDescriptor descriptorType]) {
// result is a list of other descriptors
}
else {
// coerce the result to the appropriate ObjC type
}
}
}
1
Следующий фрагмент кода используется для запуска приложения программно:
NSString *path = [[[NSBundle mainBundle] bundlePath] stringByDeletingLastPathComponent];
path = [path stringByAppendingString:@"/MyApp.app"]; // App Path
NSWorkspace *ws=[NSWorkspace sharedWorkspace];
NSURL* url = [NSURL fileURLWithPath:path isDirectory:NO];
[ws launchApplicationAtURL:url
options:NSWorkspaceLaunchWithoutActivation
configuration:nil
error:nil];
Смежные вопросы
- 1. Запуск Mono Process Programally
- 2. NSPopover OS X Application
- 3. OS X Application Signing
- 4. MAC OS X Cocoa Application
- 5. Интеграция PURGE в Mac OS X Application
- 6. Запустить рубиновый скрипт из OS X Application
- 7. Текст в речь в OS X Application
- 8. Mac OS X Пользовательские Dock Application
- 9. OS X Application Pop Up Menu
- 10. Mac OS X Cocoa multiview application navigation
- 11. Заполнение NSTableView в OS X Application
- 12. Запуск сервера Synergys на Mac OS X
- 13. Запуск Cassandra на Mac OS X
- 14. Запуск Rscript на Mac OS X
- 15. Запуск оболочки Linux на OS X
- 16. Запуск ддд на Mac OS X 10.7.5
- 17. Запуск приложения в OS X LoginWindow
- 18. Запуск ракетки с терминала в OS X
- 19. Автоматический запуск Adobe Coldfusion в OS X
- 20. Mac OS X - запуск приложения для монитора?
- 21. Запуск PhantomJS как daemon в OS X
- 22. Запуск приложения OS X в центре экрана
- 23. Запуск скрипта crontab Mac OS X
- 24. OS X: Self Packaged Kivy-Application не работает
- 25. Android Programally Stroke
- 26. Как сменить исполняемый файл в OS X Application Bundle
- 27. Предполагаемое использование/Library/Application Support/on OS X
- 28. Создайте файл внутри .app на OS X application
- 29. setFullScreenWindow (null) не работает в MAC os x Swing application
- 30. Создайте кросс-платформу Windows, Mac OS X application
Вы могли бы сделать систему терминала вызова с помощью «открытой» /path/to/file.app – SnoApps
Что бы путь будет, если приложение, которое я хочу открыть, содержится в комплекте текущего приложения? –
вы можете попробовать 'NSString * path = [[NSBundle mainBundle] pathForResource: @" myapp.app "]; system [[NSString stringWithFormat: @ "open% @", путь] UTF8String]) ' – SnoApps