自前のアプリ同士での呼び出しで引数の渡し方
- 題名: 自前のアプリ同士での呼び出しで引数の渡し方
- 著者: Hiro
- 日時: 2011/09/19 21:29:09
- ID: 29071
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[1]: 自前のアプリ同士での呼び出しで引数の渡し方
- 著者: iti
- 日時: 2011/09/19 21:49:56
- ID: 29072
- この記事の返信元:
- この記事への返信:
- ツリーを表示
- 題名: Re[2]: 自前のアプリ同士での呼び出しで引数の渡し方
- 著者: Hiro
- 日時: 2011/09/20 8:59:13
- ID: 29076
- この記事の返信元:
- この記事への返信:
- ツリーを表示
分類:[.NET]
自前のアプリから自前のアプリを引数を付けて呼び出したいのですが、呼び出され側で「インデックスが配列の境界外」のエラーが出ます。
呼び出し側のコード
System.Diagnostics.Process proc = new System.Diagnostics.Process();
proc.StartInfo.FileName = "ReportLite.exe";
proc.StartInfo.Arguments = " 1 2 3 4 5 6 7 8 9";
proc.StartInfo.WorkingDirectory = "Report";
//proc.StartInfo.UseShellExecute = false;
proc.Start();
// プロセスが終了したときに Exited イベントを発生させる
proc.EnableRaisingEvents = true;
// イベントハンドラがフォームを作成したスレッドで実行されるようにする
proc.SynchronizingObject = this;
// 起動したアプリの終了を待って処理したい
proc.WaitForExit();
呼ばれる側
private void Form1_Load(object sender, EventArgs e)
{
:
string[] args = Environment.GetCommandLineArgs();
if (args.Length == 10)
{
string txt = string.Format("{0}{1}{2}{3}{4}{5}{6}{7}{8}",
args[1], args[2], args[3], args[4], args[5], args[6], args[7], args[8], args[9]);
MessageBox.Show(txt); 確認のため受けた引数を表する
これを上記のアプリから呼ぶとエラーになります。
しかし、コマンプロンプトより「reportLite.exe 1 2 3 4 5 6 7 8 9」
などとして呼ぶと正しくメッセージボックスを表示します。
正しい、引数の渡し方を教えてください。