У меня есть приложение: TexturePacker. Если я нажму на значок приложения в папке приложения, он запустит gui. Если я нахожу «texturepacker» в терминале, он запускает версию командной строки.Как запустить программную версию приложения из командной строки программно?
Я хочу программно запустить версию командной строки! Когда я использую приведенный ниже код, он запускает графический интерфейс. Какую команду оболочки я должен использовать, чтобы приложение (версия командной строки) запускалось, как если бы я набрал «упаковщик текстур» в терминале.
NSTask *theProcess = [[NSTask alloc] init];
[theProcess setLaunchPath:@"/usr/bin/open"];
[theProcess setArguments:[NSArray arrayWithObjects:
@"-a",
@"/Applications/TexturePacker.app",
nil]];
// Arguments to the command: the name of the
// Applications directory
[theProcess launch];
// Run the command
[theProcess release];
Если это вопрос с вопросом. Я извиняюсь. Я нооттастичен. : S
РЕДАКТИРОВАТЬ: Извлечь часть его. Мне нужно было указать путь к двоичному файлу внутри приложения, чтобы запустить его. Но как передать аргументы? Если я добавлю больше аргументов в массив, оболочка предполагает, что это аргумент команды «open». Если я добавлю его в строку с конвейером для пакета текстур, оболочка говорит, что приложение не найдено. : S
Почему вы используете '/ USR/BIN/open' для запуска программы? Для запуска такой командной строки вы должны установить путь запуска NSTask к бинарнику texturepacker, а затем вы можете просто setArguments получить массив, содержащий аргументы для texturepacker. – tcovo
Если вы действительно хотите использовать '/ usr/bin/open', вы можете передать аргументы texturepacker, добавив их в массив, но отделенные от предыдущих аргументов« -args »(см. Документацию по [open] (https://developer.apple.com/library/mac/#documentation/Darwin/Reference/Manpages/man1/open.1.html)). Но я не думаю, что «открытость» уместна в этой ситуации. – tcovo
Вы правы! Я должен получить доступ к двоичному файлу напрямую, а затем передать аргументы. Если вы ответите на вопрос, я отметю его правильно! : D Спасибо. –