2017-01-11 2 views
0

C#には、アプリケーションウィンドウを表示せずにサードパーティのアプリケーションを実行できるようにする属性があります。QProcess with CreateNoWindow

は、Win32 CreateProcess関数を使用せずにQTで、コンソールウィンドウを表示せずにコンソールアプリケーションを実行する方法はありますか?

答えて

0

QProcess.start()は、そのウィンドウを表示せずにコンソールアプリケーションを実行しますが、あなたはまた、それをある程度制御を持っているしたい場合があります。

QProcess p; 
p.setProcessChannelMode(QProcess::MergedChannels); 
p.setStandardOutputFile("out.txt"); 
p.start("cmd.exe", QStringList()<<"/C"<<"ping"<<"127.0.0.1"); 
p.waitForStarted(); 
p.waitForFinished(); 

あなたは(QStringList内)startメソッドで二番目の引数を使用してコンソールにコマンドとパラメータを渡すことができます。この例を参照してください。 setStandardOutputFileメソッドを使用して、出力を何らかのファイルにリダイレクトすることもできます。

あなたがp.startDetached()を使用し、ウィンドウを表示する必要がある場合。

+0

私がping x.x.x.x -tを使用したい場合ので、私はQThreadが必要になりますか? –

+0

@KooroshGhorbani申し訳ありませんが、あなたの質問は不明です、何を達成しようとしていますか?どのコンソールアプリケーションを実行するのですか? – lena

関連する問題