- ベストアンサー
C#で別プログラムを起動する方法
- C#で別プログラムを起動する方法について解説します。
- C#で複数のプログラムを作成し、メニュー画面から選択したプログラムを起動する仕組みを作りたい場合、以下の方法があります。
- System.DiagnosticsクラスのProcess.Startメソッドを使用して、プログラムを起動することができます。
- みんなの回答 (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; } }
その他の回答 (2)
- chie65536(@chie65535)
- ベストアンサー率44% (8741/19839)
・引数を渡してプロセスを起動する方法 1. CreateProcess関数 http://msdn.microsoft.com/ja-jp/library/cc429066.aspx lpCommandLineに引数を渡す。 2. ShellExecuteEx(A)関数 http://yokohama.cool.ne.jp/chokuto/urawaza/api/ShellExecuteEx.html SHELLEXECUTEINFO構造体のlpParametersメンバに引数を渡す。 Win32アプリでは、CreateProcess関数を用いること。 ・プログラムが引数を受け取る方法 1. main()関数のargc,argvを使う 2. WinMain()関数の第3引数lpCmdLineを使う 3. GetCommandLine関数 http://msdn.microsoft.com/ja-jp/library/cc429108.aspx
お礼
ありがとうございます。 参考にさせて頂きます!
- Hardking
- ベストアンサー率45% (73/160)
プログラム間でコマンドラインパラメーターとして受渡しを行います。 ◆渡し側例 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#の初歩的な事かもしれませんが、教えて頂ければ幸いです。 よろしくお願いします。
お礼
ありがとうございました! おかげさまで思い通りの処理ができました!!!