- - PR -
■DOS窓を表示させないで、コマンドラインプログラムを実行するには?■
1
投稿者 | 投稿内容 |
---|---|
|
投稿日時: 2005-04-02 11:03
コマンドラインから起動するexeファイルを、VB.NETから実行しようとしています。
下記のようにすれば、DOS窓を最小化して起動できると思います。 ただ、実行中に画面の下部に黒いDOS窓の最小化された感じのものが 表示されてしまいます。 これを全く表示しないで、exeファイルを起動する方法はないのでしょうか? Dim info As New System.Diagnostics.ProcessStartInfo info.WorkingDirectory = "C:\\Tmp" info.WindowStyle = ProcessWindowStyle.Minimized info.FileName = "AAA.exe" info.Arguments = "/d" Dim p As System.Diagnostics.Process = System.Diagnostics.Process.Start(info) p.WaitForExit() |
|
投稿日時: 2005-04-02 11:17
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemdiagnosticsprocessstartinfomemberstopic.asp
CreateNoWindowプロパティというのがあるような気がするのですが。。。 |
|
投稿日時: 2005-04-02 11:20
RedirectStandardOutputを指定すれば、表示されなくなりません?
|
|
投稿日時: 2005-04-02 11:45
Process process = new Process();
process.StartInfo.FileName = "実行ファイル"; process.StartInfo.Arguments = "パラメーター"; process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; process.Start(); process.WaitForExit( ) ; C#ですが、上記プログラムで動作した実績があります。 _________________ えムナウ Microsoft MVP for Visual Developer - C#,2005/01-2007/12 えムナウのプログラミングのページ Blog1 Blog2 |
|
投稿日時: 2005-04-02 11:45
みなさんありがとうございます。
> RedirectStandardOutputを指定すれば、表示されなくなりません? 確認しました。現状のソースを多少変更しなければならないようです。 > CreateNoWindowプロパティというのがあるような気がするのですが。。。 これを試しましたが、なぜか動作は変わりません。 本当にDOS窓を出さないだけをしたいので、CreateNoWindowプロパティを Trueにする、みたいな感じで修正したいのです。 でも、なぜCreateNoWindowプロパティがだめなのでしょうか? ヘルプを読む限り完璧と思うのですが。。。 |
|
投稿日時: 2005-04-02 12:43
CreateNoWindowは恐らくCreateProcessのCREATE_NO_WINDOWに相当します。CREATE_NO_WINDOWフラグは実行する対象がWindow Consoleアプリケーションで、OSはWindowsNT/2000系のとき以外は機能しないと明記されています。どちらかの条件を満たしていないのではないでしょうか?
RedirectStandardOutputは恐らくCreate ProcessのSTARTUPINFO構造体のhStdOutputに対応するのだと思います。こちらはCREATE_NO_WINDOWのように前提条件は無かったはず。 |
|
投稿日時: 2005-04-02 14:11
みなさん、ありがとうございます。
甕星さん、何度もありがとうございます。 process.StartInfo.UseShellExecute = false; process.StartInfo.CreateNoWindow = true; これでできました。 UseShellExecute が足りなかったようです。 |
1