为任意应用程序编写I / O包装器(linux)

时间:2013-11-17 17:00:49

标签: linux user-interface wrapper

如何编写一个执行任意应用程序的包装器并控制它的I / O来过滤用户输入或添加它自己的输入?输出控制也很好。这是在Linux中,最好使用脚本语言,如BASH或Python,但C ++或Java也适用于我。

对于我的特定应用程序,我已经下载了Mupen64Plus(任天堂64模拟器),最新版本没有任何类型的GUI,除了显示模拟显示的窗口。我可以很好地使用它,但为它创建一个GUI来传递文件选择,保存/加载状态命令以及其他此类命令会很方便。能够添加模拟器中不存在的功能(如视频/声音捕获)也很不错。

2 个答案:

答案 0 :(得分:1)

我实际上有一个解决方案,我用它来管理我的一个小型Minecraft服务器,但它感觉很脏,有点hackish,我觉得应该有一个更清洁的解决方案。我想这主要是因为用户很容易破坏它,尽管只是在他们选择的时候。

使用屏幕,BASH应用程序作为您的包装器。编写一个执行screen -dmS mupen64的GUI,并将您提供的任何命令转发到名为mupen64的屏幕上,并且(如果需要)从屏幕上读取标准输出。

然而,这种技术有几个缺陷。它只允许访问stdin,stdout和stderr,无法访问键盘或鼠标输入,也无法访问视频或声音输出。

答案 1 :(得分:1)

了解XTest。 Here是一个Haskell API(我知道,Haskell,随机!)

或者您可能更喜欢java.awt.Robot