2014-11-12 5 views
1

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

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

+1

Не могли бы вы показать код, где вы это попробуете? – andy

+1

Существует хороший ответ о том, как использовать возможности использования root: http://stackoverflow.com/questions/2483755/how-to-programmatically-gain-root-privileges –

+0

Вам не нужно использовать привилегии root для запуска 'lpr', и вы можете использовать 'lp' вместо' lpr' –

ответ

2

вы можете запускать команды, которые нуждаются в корневой привилегии, запустив:

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); 
+0

Nejat..На самом деле я использую fedora 17 и не поддерживает sudo. – Sanks

+0

Nejat..Он работает сейчас. Спасибо за вашу помощь. – Sanks

+0

@SanketJirapure Ваш прием. Вы можете пометить его как принятое, если оно работает. – Nejat

 Смежные вопросы

  • Нет связанных вопросов^_^