コンソールアプリケーションで外部EXEファイル実行 – プログラミング – Home

コンソールアプリケーションで外部EXE...
 
通知
すべてクリア

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


トモミ
 トモミ
(@トモミ)
ゲスト
結合: 24年前
投稿: 1
Topic starter  

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


引用未解決
トピックタグ
YUICHI
 YUICHI
(@YUICHI)
ゲスト
結合: 24年前
投稿: 10
 

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に変更してください。。。。


返信引用
みや
 みや
(@みや)
ゲスト
結合: 24年前
投稿: 15
 

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


返信引用
YUICHI
 YUICHI
(@YUICHI)
ゲスト
結合: 24年前
投稿: 10
 

まず、program filesのような半角スペースを含むパスについては
引用符でファイル名を囲まないとファイル名があいまいになってしまいます。

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


返信引用
みや
 みや
(@みや)
ゲスト
結合: 24年前
投稿: 15
 

WinExecc:\\Program Files\ABC\ABC.exe
でもうまくいきませんでした。
うまくいく記述例があれば教えていただけますか?


返信引用
重
 重
(@重)
ゲスト
結合: 24年前
投稿: 84
 

WinExecc:\\Program Files\\ABC\\ABC.exe

これでどうでしょう。


返信引用
Bun
 Bun
(@Bun)
ゲスト
結合: 24年前
投稿: 761
 

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

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

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


返信引用
みや
 みや
(@みや)
ゲスト
結合: 24年前
投稿: 15
 

ありがとうございました。質問者本人じゃないけど時効でしょうからガッテンしときましょうね。
ガッテンガッテン!


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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