发送击键到shell应用程序?

时间:2011-12-21 00:23:33

标签: objective-c xcode cocoa

我是可可的新手。我正在为一个shell应用程序的GUI工作。我正在使用AMShellWrapper类,它工作正常。

问题是我的shell应用程序有一个对话框请求按键继续。我在这一点上很丢失。我已经尝试过CGEventCreateKeyboardEvent但可能不是正确的方法。

任何人都知道如何将键击发送到由我的包装器启动的shell应用程序?

1 个答案:

答案 0 :(得分:1)

您可以创建一个pty(4)伪终端来运行该应用程序。这允许您的应用程序成为运行“从属”程序(思考Terminal.app)的“主”(思考bash(1))并提供控制从属的机制。

这是一个非常复杂的Unix编程领域;我强烈建议您阅读Advanced Programming in the Unix Environment, 2nd edition本书源代码中pty.c程序的来源。 (如果使用book中的配套章节阅读,源代码会使 lot 更有意义。)

你可以 使用pty.c程序不变,并提供一个“驱动程序”来驱动你的客户端程序,这将简化任务。