CreateProcessについて – プログラミング – Home

通知
すべてクリア

[解決済] CreateProcessについて


yuzo
 yuzo
(@yuzo)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

はじめまして、ただいまVC++について勉強しているところです。
しかし解らないところが出てきたので少し教えていただけないでしょうか?
BOOL bRet = CreateProcess(
NULL, "EXE_NAME\ OPTION,
NULL,
NULL,
TRUE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&StartUpInfo, &PI );
このように記述したのですが、どうしても実行されないのです。(bRetが0になってしまう。)
exeファイルのパスを絶対パスで設定したらよいのかそれとも、コマンドラインの書き方が違うのでしょうか?


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

というか
"EXE_NAME\ OPTION
って何を表そうとしてます?
コンパイルすらできないと思うんですけど。
とりあえず、

STARTUPINFO si;
memset(&si, 0, sizeof(STARTUPINFO));
PROCESS_INFORMATION pi;

BOOL bRet = CreateProcess(
NULL,
\\winnt\\notepad.exe,
NULL,
NULL,
TRUE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi);

でメモ帳が起動しますが。


返信引用
yuzo
 yuzo
(@yuzo)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

ありがとうございます。CdSさん。
早速試してみます。
でもすみません。今日はじめてVC++について勉強しだして、
ほかの人が作ったプログラムを読まないといけなくなってしまったので
僕の力では歯が立たないのでここに投稿させて頂いているという次第です。
やりたいことは、exeファイルを引数オプションつきで起動したいのです。
EXE_NAMEとOPTIONはヘッダファイルでデファインがきってあります。
この書き方だと、コンパイルはとおるのですが、実行すると開けないんです。
オプション付きで実行する方法を教えてください。お願いします。

STARTUPINFO StartUpInfo;

GetStartupInfo(&StartUpInfo);
PROCESS_INFORMATION PI;

BOOL bRet = CreateProcess(
NULL,
"EXE_NAME\ OPTION,
NULL,
NULL,
TRUE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&StartUpInfo,
&PI
);


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

char szCmd[256] = ";
wsprintf(szCmd,%s %s,EXE_NAME,OPTION);
WinExec(szCmd,SW_SHOW);

起動したいだけならこの方が簡単です。


返信引用
yuzo
 yuzo
(@yuzo)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

ありがとうございます。toruさん。
しかし、起動したいだけでなくて、起動されたときにどこの領域に
メモリが取られたかを知りたいのです。
ファイルマッピングって言うのをしているらしくて、僕が書いた方法でないと
うまくいかないらしいのです。
コマンドラインを記述するところが良くわからないので、教えてもらえれば幸いです。
一応考えたのが
\\Program Files\\Test\\EXE_NAME\\ PC2000_OPTION,
多分あっていないと思うのですが、なにせまったく解らないもので・・・。


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

toruさんが書いておられるszCmdを第2引数にすればいいかと。

#ファイルマッピングについては誰が担当するんですかね。
その人が全部やればいいと思ったりもしますが。


返信引用
yuzo
 yuzo
(@yuzo)
ゲスト
結合: 23年前
投稿: 5
Topic starter  

ほかの人が作ったファイルだったので、そこのところをあまり触らないように
していたのですが、動作しないのでコマンドラインのところのデファインを
やめてファイル名と引数にすることにより解決しました。
案外簡単に書けるなら、そういう風に書いておいてほしかったけどしょうがないですね。
100人いれば100通りのプログラムがあるってことを再び実感しました。
CdSさん、toruさんどうもありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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