防止GUI出现在Linux中的调用?

时间:2013-06-26 17:38:26

标签: c++ qt4 ubuntu-12.04 truecrypt

我尝试在Linux中使用QProcess来调用可执行文件(在本例中为Truecrypt),但是没有办法隐藏Truecrypt窗口弹出。
通过Ubuntu中的终端调用Truecrypt(即使通过命令行发送密码)也会导致Truecrypt GUI在安装卷时弹出,甚至显示已安装的文件夹。

我曾设法避免在VC ++中使用CreateProcess() CREATE_NO_WINDOW来使用Windows {{1}},但似乎无法在Linux中找到方法。 Linux中是否有命令可以通过C ++代码调用外部可执行文件,并阻止可执行文件显示其GUI?

1 个答案:

答案 0 :(得分:0)

这里有两个问题或问题。关于防止可执行文件显示GUI的问题很容易回答,但对TrueCrypt问题没有帮助。

基本上,有两种方法可以禁止应用程序使用GUI。应用程序具有完全相同的配置或命令行选项(例如,libreoffice的--headless选项),或者您可以从GUI中隐藏有关显示的信息。

Linux中的任何GUI都需要知道显示内容,并且此信息是通过$DISPLAY环境变量提供的。如果未设置或删除此变量,则应用程序将无法显示GUI。然后,大多数GUI应用程序将失败:

~$ echo $DISPLAY
:0
~$ xterm 
~$ DISPLAY=""
~$ xterm 
xterm: Xt error: Can't open display: 
xterm: DISPLAY is not set

我无法回答有关TrueCrypt的问题,但是对trucrypt command line manual的简要介绍表明,如果您在命令行上提供了足够的信息,那么truecrypt不应该以交互方式运行;但是,以交互方式运行似乎是某些命令的默认操作。