我尝试在Linux中使用QProcess
来调用可执行文件(在本例中为Truecrypt),但是没有办法隐藏Truecrypt窗口弹出。
通过Ubuntu中的终端调用Truecrypt(即使通过命令行发送密码)也会导致Truecrypt GUI在安装卷时弹出,甚至显示已安装的文件夹。
我曾设法避免在VC ++中使用CreateProcess()
CREATE_NO_WINDOW
来使用Windows {{1}},但似乎无法在Linux中找到方法。 Linux中是否有命令可以通过C ++代码调用外部可执行文件,并阻止可执行文件显示其GUI?
答案 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不应该以交互方式运行;但是,以交互方式运行似乎是某些命令的默认操作。