2015-01-25 5 views
0

Я использую QProcess для подключения к сети Wi-Fi. Но когда я пытаюсь использовать код с 6 аргументами, он терпит неудачу, выход не возвращается.аргументы QProcess 6 не работают

Если я выполнить команду в терминале, он работает из коробки: nmcli DEV WiFi CON «myssid» пароль «myssidpassword»

QStringList arguments{"dev", "wifi", "con", "\"myssid\"", "password", "\"myssidpassword\""};QProcess *process = new QProcess; 
process->start("nmcli", arguments); 
process->waitForFinished(); 
return process->readAll(); 

Что я делаю неправильно? Благодарю.

PD: если я выполняю другие nmcli с двумя аргументами, он работает.

+0

Почему двойные кавычки вокруг ssid и пароль? – peppe

+0

Причина, по которой некоторые Wi-Fi-сети имеют пространство в ssid, и если мне нужно подключиться к одному из них, если я не помещаю кавычки, команда будет интерпретировать второе слово ssid как параметр nmcli. – walolinux

+0

Это абсолютно справедливо, когда дело доходит до цитирования оболочки, но это C++! – peppe

ответ

0

OK, QProcess запускал стандартную ошибку, так что мне нужно, чтобы захватить строку:

QDebug() < < "Стандарт" Ошибка: < < процессно> readAllStandardError();

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