2012-01-05 3 views
0

Существует открытый проект Xcode под названием «PseudoTTY», написанный в объекте-c, и я пытаюсь выяснить, как выполнять команды программно. Когда я скомпилирую приложение, я получаю красивое небольшое окно терминала, которое делает именно то, что я хочу; за исключением того, что мне нужно вручную ввести команду.Программные команды PseudoTTY программно

Что я хочу сделать, это программно выполнить команду в терминале и выполнить синтаксический анализ результатов с помощью моей программы.

Пятна интерес:

- (void)keyDown:(NSEvent *)event 
{ 
    const char * typein = [[event characters] UTF8String]; 

    [[pty_ masterFileHandle] 
      writeData:[NSData dataWithBytes:typein length:strlen(typein)]]; 
} 

и

-(void) didRead: (NSNotification *)noty 
{ 
    NSData * data = [[noty userInfo] objectForKey:NSFileHandleNotificationDataItem]; 

    if ([data length] == 0) 
     return; // end of file 

    NSString * str = [[NSString alloc] initWithData:data encoding:NSUTF8StringEncoding]; 

    [self insertText:str]; 
+0

Каков ваш вопрос? –

+0

@ Карл Я обновил вопрос, я добавил вопрос. – alexy13

ответ

0

Все, что вам нужно сделать, это заменить typein со строкой вашего выбора, и он будет делать то, что вы хотите. Выход будет в str в методе didRead:.

char *myCommand = "ls"; 
[[pty_ masterFileHandle] writeData:[NSData dataWithBytes:myCommand 
                length:strlen(myCommand)]]; 
+0

Выглядит интересно; Я попробую, когда у меня появится шанс! – alexy13

+0

Как я могу указать окну «нажать» клавишу ввода, чтобы она выполняла команду? Благодаря! – alexy13

Смежные вопросы