コンソールアプリケーションで外部EXEファイル実行

[戻る]
トモミ 2001/04/05(木) 16:41:04
超初心者です。
C++のコンソールアプリケーションで例えばメモ帳などのEXEファイルを指定して実行させるにはどうしたら良いでしょう?できればヘッダーから教えていただくと嬉しいです。

YUICHI 2001/04/12(木) 12:00:11
CreateProcessを使用しては?

//宣言
STARTUPINFO st_start;
PROCESS_INFORMATION st_info;

#define PRC_INIT    0x00        /*プロセス初期値*/

//ソース
memset( &st_start, PRC_INIT, sizeof( st_start ) );
st_start.cb = sizeof( st_start );
::CreateProcess( NULL, "hidemaru.exe", NULL, NULL, FALSE, NORMAL_PRIORITY_CLASS,    NULL, NULL, &st_start, &st_info );

hidemaru.exeのところを
お好きなexeに変更してください。。。。

みや 2001/05/22(火) 14:55:50
ファイル名についてなんですが、フルパス表示しようとして
c:\Program Files\ABC\ABC.exe
ではうまくいかず、
再インストールしてフォルダを変更し
c:\ABC\ABC.exe
にすると起動できました。
スペースがあるから駄目なんでしょうか?
また、ABC.exeだけといったフルパスで表示しない方法もあるんですか?

YUICHI 2001/05/23(水) 09:25:28
まず、program filesのような半角スペースを含むパスについては
引用符でファイル名を囲まないとファイル名があいまいになってしまいます。

フルパスについては、
現在のディレクトリ、
Windowsディレクトリ、Windowsシステムディレクトリや
PATH環境変数に記述されているディレクトリ等の下にあれば
パスを省略できます。

みや 2001/05/23(水) 10:14:28
WinExec"c:\\Program Files\ABC\ABC.exe"
でもうまくいきませんでした。
うまくいく記述例があれば教えていただけますか?

2001/05/23(水) 10:55:25
WinExec"c:\\Program Files\\ABC\\ABC.exe"

これでどうでしょう。

Bun 2001/05/23(水) 10:58:50
とりあえず、実行ファイルと同じディレクトリに
ABC.EXEをコピーして下記のWinExecで試してください。
パスに関してはそれから考えてはいかがでしょうか?

CString sComLine = "ABC";
WinExec((LPCTSTR)sComLine, SW_SHOW);

うまくいかない場合は、どううまくいかないのか、その
エラーメッセージも記述してください。

みや 2001/06/21(木) 14:14:03
[[解決]]
ありがとうございました。質問者本人じゃないけど時効でしょうからガッテンしときましょうね。
ガッテンガッテン!

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