- ベストアンサー
Exec時のCMD.EXE画面は結局回避可能なのか
先ほど、以下の件でお世話になったものです。 http://okwave.jp/qa/q8870858.html Execを実行すると、少しだけCMD.EXEの画面が表示されます。 ネットを調べると、それを回避できるような記事もあれば、出来ないような記事もあります。 結局、通常の方法を用いて、回避できるのでしょうか。 特殊な方法ならば、諦めます。 環境はWindows XP SP2です。
- みんなの回答 (2)
- 専門家の回答
質問者が選んだベストアンサー
WSHから他プログラムを起動する方法にはお示しのExecメソッドと、もうひとつRunメソッドがあります。 それぞれの特徴は Exec: 新たにコンソールウインドウを作ることなく既存コンソールの中で新しいプロセスを生成する。その結果、親(呼び出し元)と標準入出力でやりとりすることができる。コンソール表示については、呼び出し元と同じコンソールで動くので変更できない。つまり、標準入出力を使いたいなら=Cscriptから呼び出すなら、コンソール表示をOFFにできない。 Run: 新たにコンソールウインドウを作り、その上で新しいプロセスを生成する。そのため、新しいウインドウの表示を楽に制御できる。つまり、コンソールを表示しないこともできる。ただ、新しいプロセスは新しいコンソールで動いているので、呼び出し元に標準入出力パイプをつなげることはできない。せいぜい、終了エラー値を返すことができる程度。 となります。 標準入出力を使う以上、Execメソッドでいくしかないし、その場合はコンソール表示が不可欠。進退極まった観がありますが、ここで一工夫。 Runメソッドで非表示のCScriptを起動し、その中でパイプ処理とExecによる新プロセスの起動をすればいいんじゃない。 で、具体的にどうやればいいかというと、そのものズバリのページを見つけました。 http://scripting.cocolog-nifty.com/blog/2007/05/wscriptshellexe_6e22.html 参考になれば幸いです。
その他の回答 (1)
- yambejp
- ベストアンサー率51% (3827/7415)
>特殊な方法ならば、諦めます。 かなり特殊な方法になりそうです。 あきらめた方がいいと思います。
お礼
みなさん、返答有り難うございます 諦めます。それが見えるのは一瞬だけですから。 それよりも、別の問題が発生してしまいました。 良かったら助けて下さい。 次です: http://oshiete.goo.ne.jp/qa/8871264.html