準・究極の選択

私が作成したサービスプログラム(コントロールパネル-管理ツール-サービスに表示されるプロセス)から、以下の記述のバッチファイル(test.batとします)をCreateProcess()にて起動したところ、test.bat内のap.exeは起動せず、cmd.exeのみが増幅していきます。(タスクマネージャにて確認)起動できる場合もあるのですが、何が原因なのでしょうか?

test.batの内容
start /B "C:\Program Files\TEST" ap.exe

A 回答 (3件)

start /B "C:\Program Files\TEST ap.exe"ではないでしょうか?

    • good
    • 0

すみません。

勘違いしてました。

start /B C:\Progra~1\TEST.bat ap.exe ではないでしょうか?

パス名に空白を含むからダブルコーテーションで囲む必要がある。

この回答への補足

私の文章が少し悪かったみたいですね。
以下に補足します。
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が増幅するのかを知りたいです。
何卒、よろしくお願いします。

補足日時:2001/10/10 18:55
    • good
    • 0

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"なら動きますよね。

こんな説明ではいかがでしょうか?
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!