ユーザ用ツール

サイト用ツール


appendix:外部アプリケーション連携

外部アプリケーション連携

プラグインと外部アプリケーション連携する方法で確認できたものです。

Windowメッセージ

以下のプラグインで使用。

  • ぷらし~ぼと設定画
  • もあもあちゃんとスタジオセーブいぢり

メリット

比較的簡単。

デメリット/問題点

送れるデータに制約がある。
WM_COPYDATAを使わないとたいしたものは送れず、使ってもめんどい。
また、HWND_BROADCASTを連発するととても重いので注意。
(モニタリングする様な場合は危険)

コツ

RegisterWindowMessageで送受信両方向分をプラグインと外部アプリ双方で登録すると良い。
その状態でHWND_BROADCASTすればOK。
受信処理はHWND_MESSAGEを親にしたフォームを作ってそれで受け取る。
なお
IntPtr HWND_MESSAGE = new IntPtr(-3);\ と書いてあるところが多いが、
IntPtr HWND_MESSAGE = new IntPtr(0xfffd);
が、正解だと思う(-3だと0xfffffffdになりそう)。

ソケット通信

以下のプラグインで使用。

  • メイドいぢり
  • 窓いぢりと設定画面

メリット

インターネットで使われているもの。
もちろん別PCとも繋がれる。

デメリット/問題点

実装がちょっとめんどい。
通信に関わる設定が必要。
外部通信なのでセキュリティソフトに阻まれる可能性がある。
※ただし、オダメ自身がDLCのダウンロードするためにファイアウォールの例外になっている可能性が高く意外といける。

コツ

めんどうなのでライブラリ化してしまうのがいい。
需要があったらおいらのやつ公開するよ?

ファイル共有

現在は使用していない。

メリット

簡単で送れるものも多い。

デメリット/問題点

同期がちょっとめんどい、FileSystemWatcherを使うか?
(FileSystemWatcherのUnity(Mono)の動作は未確認)

IPC

メイドいぢり間1)で使用。

メリット

.NET Frameworkでは結構スタンダードな方法。
でも.NETではサポートされていない。

デメリット/問題点

Unity(mono)では使えない2)のでオダメとのやりとりは無理。

名前付きパイプ

初期のメイドいぢりで使用。 某有名メイドのパラメータを書き換えるプラグインが使用している。

メリット

比較的メジャーなプロセス間通信。

デメリット/問題点

Unityの名前付きパイプ関連の挙動があやしい3)。 恐らく非同期IOに対応していない。
従ってWin32APIで実装することとなり手間が爆増4)する。
一癖ある。

1)
メイドいぢりの多重起動時の通信
2) , 3)
少なくともオダメが使用しているバージョンでは
4)
倍どころでは済まない

コメント

コメントを入力:
 
appendix/外部アプリケーション連携.txt · 最終更新: 2023/02/07 16:07 by fumble