Как запустить команду print lpr -p программно через привилегию root в Qt

Я хочу запустить команду печати lpr -p программно через привилегии root в Qt. На самом деле я хочу напечатать файл PDF, используя эти команды. Эта команда работает через терминал, но не программно.

Заранее спасибо.

1 ответ

Решение

Вы можете запускать команды, которым нужны права root, запустив:

echo myPass | sudo -S lpr -p

Хотя выводить пароль в оболочке не очень хорошая идея, вы можете сделать это в Qt через Qprocess лайк:

QProcess process1;
QProcess process2;

process1.setStandardOutputProcess(&process2);

process1.start("echo myPass");
process2.start("sudo -S lpr -p");
process2.setProcessChannelMode(QProcess::ForwardedChannels);


process2.waitForFinished(3000);
Другие вопросы по тегам