2014-07-17 8 views
0

Qt C++ 응용 프로그램 내에서 pnputil을 실행하는 방법은 무엇입니까? lstderr가 "pnputil이 내부 또는 외부 명령으로 인식되지 않음"을 표시하면 다음과 같은 오류가 발생합니다. 아마도 pnputil은 기본 제공 (내장되지 않은 작업으로 대체)이기 때문일 수 있습니다. QProcess 클래스 참조는 "cmd/c"형식이 Windows 내장 함수에 대한 "가능한 솔루션"이라고 말하지만 나와는 그렇지 않습니다.Qt에서 pnputil (또는 다른 윈도우 내장)을 관리자로 실행합니다.

QProcess process; 
process.start("cmd /c \"pnputil -e\""); 

if (!process.waitForStarted()) 
    return false; 

if (!process.waitForFinished()) 
    return false; 

QByteArray lstderr = process.readAllStandardError(); 
QByteArray lstdout = process.readAllStandardOutput(); 
+0

'cmd ... '가 필요합니까? 'QProcess' 만 사용하십시오. 다른 질문 :'pnputil'은 시스템의 변수에 있습니까? –

답변

0

프로세스에 실행 파일을 찾는 데 잘못된 PATH가있을 수 있습니다. 전체 경로에 의해 PnPUtil를 호출보십시오 :

qgetenv("WINDIR"); 

응용 프로그램이있을 경우 윈도우 만하고 기본 통화를 사용하여 상관 없어 :

GetWindowsDirectory(); 
을 당신은 Qt를 땅에 머물고에 사용할 수있는
%WINDIR%\System32\PnPUtil.exe 

+0

도움이되지 않습니다 - Windows7에서 PnPutil은 내장되어 있고 거기에 살지 않습니다 (또는 어디서나) ... 문제가 있습니다. 내가 실행할 수있는 모든 것을 호출 할 수 있습니다. 문제는 기본 제공 기능입니다. – rwhenderson

+0

나는 win7을 실행하고 pnputil.exe를 가지고있다. –

+0

'''pnputil'''을 호출하려고 했습니까? 이 명령에 대한 반환은 무엇입니까? 나는 일부 시스템에서 그 부족한 것을 읽었으며, 일부 microsoft를 번들로 묶을 수있는 해결 방법이있다 (DPInst라고 생각한다). 또는 네이티브 윈도우 API를 사용한다. –