我尝试使用QProcess在Linux中调用一个可执行文件(在本例中是Truecrypt ),但是找不到任何方法来隐藏弹出的Truecrypt窗口。
在Ubuntu中通过终端调用Truecrypt (即使在通过命令行发送密码之后)会导致在挂载卷时弹出Truecrypt,甚至显示已挂载的文件夹。
我已经通过在VC++和CREATE_NO_WINDOW中使用CreateProcess()来避免在Windows中出现图形用户界面,但似乎找不到在Linux中这样做的方法。Linux中有没有一个命令,用户可以通过它通过C++代码调用外部可执行文件,并阻止可执行文件显示其图形用户界面?
发布于 2013-07-01 19:37:00
这里有两个问题。关于阻止可执行文件显示图形用户界面的问题很容易回答,但对TrueCrypt问题没有帮助。
从本质上讲,有两种方法可以禁止应用程序使用GUI。应用程序有一个配置或命令行选项(例如,libreoffice的--headless选项),或者您可以从图形用户界面保留有关显示的信息。
Linux中的任何图形用户界面都需要知道显示是什么,而这个信息是通过$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就不应该以交互方式运行;但是,对于某些命令来说,以交互方式运行似乎是默认操作。
https://stackoverflow.com/questions/17326873
复制相似问题