ms_dosプロンプトで実行するには

[戻る]
s 2004/04/16(金) 16:22:02
下記関数でプロンプトを立ち上げ
カレントドライブがc:\の状態になります。
このあと(1)のようにtest.exe test.txtと入力させるには
どうしたらよいでしょうか?(手入力ならもちろんできますが)


ShellExecute(m_hWnd,"open","cmd.exe",NULL,"c:\\",SW_SHOW);    


(1)プロンプトの画面
c:\>test.exe test.txt

アイススケーター 2004/04/16(金) 18:06:09
フォーカスがあればキーボードイベントを使う手があると思いますが

YuO [E-Mail] 2004/04/16(金) 19:33:44
バッチファイルに,
test.exe test.txt
と書いておいて,
cmd.exe /k バッチファイル
を呼び出してやればできませんかね?

wood 2004/04/17(土) 05:17:54
実行するOSとVCのバージョン
特に実行OSによって挙動違うんですけど
CreateProcessしかやったこと無いんだけど
コマンドラインで「TEXT.BAT 0001」とやると、TEXT.BATは 0001と認識しますが
CreateProcessで同じ記述をしてもパラメータ「0001」と認識しないOSがいます

すべてできちんと動作させるには
「TEXT.BAT /0001」
としなければ、きちんとした動作になりません
ShellExecuteも同じような考えで動作しませんかね

DOS窓が出て入力待ちにならないと、やはりダメなんですかね?

アプリでDOS窓を起動させ、入力待ちにさせる行為自体にどんな意味があるのか
またどんな必要性があるのか不思議なのですが?
アプリ作る意味なさそうですけど?

Windowsの「Shell」って「cmd.exe」と同等のものと思いますけど違いますかね?
つまり アプリ→シェル(ShellExecute)→シェル(cmd.exe)→入力待ち  
見たいな動作させてませんか? これでいいの?

サスライの旅人 2004/05/09(日) 04:15:51
systemを使えばいいと思いますよ。
例えば
#include<stdlib.h> ←必要
system("cls");
なら、すべてのDOS上の画面消えますし、
system("〜.EXE")
なら 〜.EXE が実行できます。

例:---------

#include <stdio.h>
#include <stdlib.h>
void main(void)
{
   system("C:\\windows\\notepad.exe C:\\test.txt"); //←\\が二ついるのに注意
}

-------------
C:\test.txt を作って試してみてください。ちゃんと関連付けられてnotepadが実行されま
す。

このことを聞いていてのですよね?

古いスレッドには追加発言できません。