2013-01-15 2 views
1

Я пытаюсь запустить «net use \ server_ip» и проанализировать результат. Платформа - WindowsQProcess (net use) не работает

У меня есть следующий код:

QProcess *prc = new QProcess(0); 
QString exec="net use"; 
QStringList params; 
params << "\\\\" + getServerIP(); 
prc->start(exec,params); 
qDebug() << "exec process"; 
prc->waitForFinished(); 
qDebug() << prc->readAll() << prc->exitStatus();; 
delete connected; 

Но ReadAll() reurns "" и статус_завершения() возвращает 0.

ли вы, ребята, есть какие-либо предложения?

+0

'' use "' на самом деле является первым параметром. Команда 'net.exe' –

+0

Также вы должны проверить результат' QProcess :: start' –

+0

QProcess :: start возвращает void – tty6

ответ

1

Мое предложение было бы удалить все вышесказанное и позвонить по телефону WNetAddConnection вместо этого.

По крайней мере, если я интерпретации того, что у вас есть выше правильно, это, кажется, действительно окольный вариант что-то вроде этого:

WNetAddConnection(getServerIP(), NULL, NULL); 

Если GetServerIP возвращает QString, вам может понадобиться добавить вызов до toAscii (или toLatin1, toLocal8Bit и т. д.), чтобы преобразовать его, чтобы получить что-то. WNetAddConnection знает, как с этим бороться.


  1. Или WNetAddConnection2 или WNetAddConnection3. Microsoft официально рекомендует последнее, но вам, похоже, не нужны никакие дополнительные возможности, которые они предоставляют.
+0

Спасибо Это работает! – tty6

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