ms_dosプロンプトで実行するには – プログラミング – Home

ms_dosプロンプトで実行するには
 
通知
すべてクリア

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


s
 s
(@s)
ゲスト
結合: 22年前
投稿: 10
Topic starter  

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

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

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


引用解決済
トピックタグ
アイススケーター
 アイススケーター
(@アイススケーター)
ゲスト
結合: 23年前
投稿: 280
 

フォーカスがあればキーボードイベントを使う手があると思いますが


返信引用
YuO
 YuO
(@YuO)
ゲスト
結合: 22年前
投稿: 320
 

バッチファイルに,
test.exe test.txt
と書いておいて,
cmd.exe /k バッチファイル
を呼び出してやればできませんかね?


返信引用
wood
 wood
(@wood)
ゲスト
結合: 23年前
投稿: 895
 

実行する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)→入力待ち  
見たいな動作させてませんか? これでいいの?


返信引用
サスライの旅人
 サスライの旅人
(@サスライの旅人)
ゲスト
結合: 21年前
投稿: 21
 

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が実行されま
す。

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


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました