C# プロセス間通信をしてみたのでメモ。
正道を行くならIPCチャンネルを使う選択が正しいのかもしれないが、面倒くさいしよく分からないので比較的簡単に実装できるウインドウメッセージを用いた方法にしてみた。
ただしこの方法には次の制限アリ。
- 同じ PC 上のプロセス間のみ
- GUI のあるアプリケーション
ウインドウ宛てにメッセージ送るわけなので当然といえば当然。
やりかたそのものは検索すれば出てくる方法とほぼ同じ。
取り回しが良いように DLL にしてみた。
サンプルプロジェクトの構成
まず Visual Studio のソリューションにプロジェクトを3つ作成。
プロジェクト名 | 種類 | 参照設定 | 備考 |
---|---|---|---|
Server | Windows フォームアプリケーション | HogeHoge | |
Client | Windows フォームアプリケーション | HogeHoge,Server | スタートアッププロジェクト |
HogeHoge | クラスライブラリ | System.Windows.Forms |
送受信まわりを簡単な DLL(HogeHoge) にして Server・Client から参照する。
Client で Server を参照設定しているのは、実行フォルダに Server.exe を作成する為だけの目的なので本来は必要ない。HogeHoge の System.Windows.Forms 参照はウインドウメッセージを扱うので必要。
Server にはテキストボックスを1つ、Client にはボタンを2つ追加すれば準備完了。
続きを読む