Я пытался с помощью QProcess
вызвать исполняемый файл (в данном случае Truecrypt) в Linux, но не нашел способа скрыть всплывающее окно Truecrypt.
Вызов Truecrypt через терминал в Ubuntu (даже после отправки пароля через командную строку) вызывает появление всплывающего окна Truecrypt, когда том смонтирован, и отображается даже смонтированная папка.
Мне удалось избежать появления графического интерфейса в Windows с помощью CreateProcess()
в VC ++ с CREATE_NO_WINDOW
, но не могу найти способ сделать это в Linux. Есть ли в Linux команда, с помощью которой пользователь может вызывать внешний исполняемый файл с помощью кода C ++ и предотвращать отображение исполняемого файла в своем графическом интерфейсе?
Здесь есть две проблемы или вопросы. На вопрос о запрете показа исполняемого файла с графическим интерфейсом легко ответить, но это не помогает с проблемой TrueCrypt.
По сути, есть два способа запретить приложению использовать графический интерфейс. Либо приложение имеет конфигурацию или параметр командной строки, который делает именно это (например, --headless
опция для libreoffice), или вы можете скрыть информацию о дисплее из графического интерфейса.
Любой графический интерфейс в Linux должен знать, что такое дисплей, и эта информация предоставляется через $DISPLAY
переменная среды Если эта переменная не установлена или удалена, приложение не сможет отображать графический интерфейс. Большинство приложений GUI тогда потерпит неудачу:
~$ echo $DISPLAY
:0
~$ xterm
~$ DISPLAY=""~$ xterm
xterm: Xt error: Can't open display:
xterm: DISPLAY is not set
Я не могу ответить на вопрос о TrueCrypt, однако краткий взгляд на Руководство по командной строке trucrypt предполагает, что если вы предоставите достаточно информации в командной строке, то truecrypt не должен работать в интерактивном режиме; тем не менее, интерактивный запуск, по-видимому, является действием по умолчанию для некоторых команд.
Других решений пока нет …