- ベストアンサー
サービスプロセスからバッチファイルを起動すると、cmd.exeが増幅する。
私が作成したサービスプログラム(コントロールパネル-管理ツール-サービスに表示されるプロセス)から、以下の記述のバッチファイル(test.batとします)をCreateProcess()にて起動したところ、test.bat内のap.exeは起動せず、cmd.exeのみが増幅していきます。(タスクマネージャにて確認)起動できる場合もあるのですが、何が原因なのでしょうか? test.batの内容 start /B "C:\Program Files\TEST" ap.exe
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
start /B "C:\Program Files\TEST" ap.exeでは 「何がしかの指令」と解釈したCMD.EXE(コマンドプロセッサ)が 起動されますが、AP.EXEの部分をパラメータとしているから、でしょう。 AP.EXE をNotepad.EXE と置き換えて考えると良いと思います。 コマンドプロンプト上で[cmd notepad][Enter]としてもNotepadは起動しません。 AP.EXE をNotepad.EXE と置き換え、Sample.txtを引き渡す、ということを例にすると start /B "C:\Windwos\Notepad sample.txt"なら動きますよね。 こんな説明ではいかがでしょうか?
補足
私の文章が少し悪かったみたいですね。 以下に補足します。 test.bat・・・C:\配下にあります。 ap.exe ・・・C:\Program Files\TEST配下にあります。 test.batを以下のように記述し、サービスプロセスから起動すると、前述のように cmd.exeが増幅していきます。 start /B "C:\Program Files\TEST" ap.exe しかし、以下のように記述を変えると何も問題なく起動できます。 start /B "C:\Program Files\TEST\ap.exe" 上の記述のようにした場合に、なぜcmd.exeが増幅するのかを知りたいです。 何卒、よろしくお願いします。