電子書籍の厳選無料作品が豊富!

別プログラムの起動の仕方に関して

抽象的な質問で申し訳ありませんが、今現在、C#にて開発を行っていますが、
その際に、幾つものプログラムを作成しなければならない為、メニュー画面を
作成し、メニューのボタンが押されたら、それぞれのプログラムが起動するような
仕掛けを作成したいと考えています。

そこで、恐らく以下のようにパスを指定すれば、プログラムが起動するかと
思われますが、その際にログインのユーザやパスを引数として渡せないか?と
考えています。

《記述例》

using System.Diagnostics ;

// アプリを起動

Process.Start("C:\\Program Files\\zzzzz\\xxxxx.exe") ;

上記のような内容で、渡す側と受け側のそれぞれどのように記述したら良いか?
を教えて頂ければ幸いです。

よろしくお願いします。

A 回答 (3件)

◆別フォームで利用したい場合


派生Formクラスを作成し、そのコンストラクターパラメータとして
コマンドラインパラメーターを渡せばいいでしょう。

【コーディング例】
◆受け側例(xxxxx.exe)
using System;
using System.Drawing;
using System.Windows.Forms;

static void Main(string[] args)
{
string margeArg = "";
foreach (string inputArg in args)
{
margeArg += inputArg;
}

Application.Run(new testForm(margeArg));
}

class testForm : Form
{
public testForm(string p_margeArg)
{
this.Width = 200;
this.Height = 200;
this.Text = p_margeArg;
}
}
    • good
    • 0
この回答へのお礼

ありがとうございました!

おかげさまで思い通りの処理ができました!!!

お礼日時:2010/06/21 14:42

・引数を渡してプロセスを起動する方法



1.
CreateProcess関数
http://msdn.microsoft.com/ja-jp/library/cc429066 …
lpCommandLineに引数を渡す。

2.
ShellExecuteEx(A)関数
http://yokohama.cool.ne.jp/chokuto/urawaza/api/S …
SHELLEXECUTEINFO構造体のlpParametersメンバに引数を渡す。

Win32アプリでは、CreateProcess関数を用いること。

・プログラムが引数を受け取る方法

1.
main()関数のargc,argvを使う

2.
WinMain()関数の第3引数lpCmdLineを使う

3.
GetCommandLine関数
http://msdn.microsoft.com/ja-jp/library/cc429108 …
    • good
    • 0
この回答へのお礼

ありがとうございます。
参考にさせて頂きます!

お礼日時:2010/06/21 14:41

プログラム間でコマンドラインパラメーターとして受渡しを行います。



◆渡し側例
Process.Start("C:\\Program Files\\zzzzz\\xxxxx.exe", "AAA BBB CCC") ;
第1引数:実行ファイル名
第2引数:コマンドラインパラメーター(複数ある場合はスペースで区切る)

◆受け側例(xxxxx.exe)
static void Main(string[] args)
{
foreach (string inputArg in args)
{
Console.WriteLine(inputArg);
}
}
AAA
BBB
CCC
とコンソール出力される。

この回答への補足

ありがとうございました。

取得する事ができました!!

もう1点だけ、それに関して質問させて下さい。

受け取った引数を、別フォーム等で利用したい場合はどのように
すれば良いでしょうか。。。

C#の初歩的な事かもしれませんが、教えて頂ければ幸いです。

よろしくお願いします。

補足日時:2010/06/21 11:16
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!