2012-01-05 130 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

相关问题