- PR -

CreateProcessについて

1
投稿者投稿内容
84
ベテラン
会議室デビュー日: 2005/11/04
投稿数: 83
投稿日時: 2006-08-14 13:32
.NET2003 VC++にて開発を行っています。

CreateProcessを使ってバッチファイルを起動しようとしていますが、
なかなかうまくいきません。
デバッグを実行すると、
'System.NullReferenceException' のハンドルされていない例外が test.exe で発生しました。
というエラーダイアログがでてしまいます。

ちなみにCreateProcessの第二引数に渡してある文字列を
コマンドプロンプトを開いて入力すると、正常に起動できます。

コマンドプロンプトで動作するのと同じように
CreateProcessでもやりたいのですが、どうしたらよいでしょうか。

どなたかご教授ください。

//////////////////////////////////////////////////////////////////
ZeroMemory(&si, sizeof(si));
ZeroMemory(&pi, sizeof(pi));
si.cb = sizeof(si);

CreateProcess(NULL,
_T("\"C:\\Documents and Settings\\xxx\\デスクトップ\\xxx\\bin\\xxx.bat\" start"),
NULL,
NULL,
TRUE,
NORMAL_PRIORITY_CLASS,
NULL,
NULL,
&si,
&pi);

CloseHandle(pi.hProcess);
CloseHandle(pi.hThread);
//////////////////////////////////////////////////////////////////
Makoto
大ベテラン
会議室デビュー日: 2004/03/31
投稿数: 133
投稿日時: 2006-08-15 13:04
いつもお世話になっております、

多分ですが...

第1引数には、コマンドプロンプト(cmd.exe)を指定して、
第2引数には、コマンドライン引数として使用する引数(batファイル名)
を与えるのではないでしょうか?

以上、お忙しいとは思いますが、よろしくお願いいたします。
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2006-08-15 15:29
リファレンス リンク。

  CreateProcess 関数

パラメータのところを参照。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
1

スキルアップ/キャリアアップ(JOB@IT)