2012-01-05 153 views
0

在Objective-C中有一個名爲「PseudoTTY」的開源Xcode項目,我試圖找出如何以編程方式執行命令。當我編譯應用程序時,我得到一個很棒的終端窗口,它完全符合我的需求;除了我必須手動鍵入命令英寸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

你的問題是? – 2012-01-05 22:19:39

+0

@Carl我更新了問題,我添加了問題。 – alexy13 2012-01-08 19:44:09

回答

0

所有你需要做的是與您所選擇的字符串替換typein,它會做你想要什麼。輸出將在didRead:方法中的str中。

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

看起來有趣;當我有機會時,我會嘗試它! – alexy13 2012-01-08 21:10:34

+0

如何告訴窗口「按下」回車鍵,以便它會運行命令?謝謝! – alexy13 2012-01-09 01:43:39

相關問題