私たちのアプリケーション(ドキュメント管理システム)では、2つのアプリケーションを同じに見えるようにするために、画面の変更を通知する(または画面変更の他のプログラムに通知する)データは、注文履行アプリケーションであり、もう1つは元のファックスの文書ビューアです。フルフィルメントアプリはvb6で書かれ、ドキュメントマネージャは.net 3.5(c#)にあります。それはターミナルサーバー上で動作するので、セッションも認識しなければなりません。ドキュメントビューアまたはフルフィルメントアプリは、最初に開いておいても、両方を他のものなしで使用することもできます。 IPCの最良の方法は何ですか?VB6と.netアプリケーションのベストIPC
答えて
VistaまたはWindows 7で実行できるようにするには、IPCのベストフォームはTCP(Winsockコントロールを使用してVB6から非常に簡単に実行される)になります。
これは、同じユーザーとして実行していなくても通信できる(つまり、Vista +ではSendMessageまたはNamed Pipesで通信できない)という利点があります。あなたが覚えておかなければならない唯一のことは、ブロックされないようにファイアウォールのルールを設定することです。これは、とあなたのインストーラで行うことができます
netsh.exe firewall set allowedprogram "{PROGRAM PATH}" "{PROGRAM NAME}" enable
クリスの答えはおそらくまだ最善の策ですが、あなたはおそらくターミナルサーバーとの健全性を維持するために、その場しのぎが必要になります。
「サーバー」アプリケーションとして機能させたいアプリケーションでは、未使用のポートを開いて「クライアント」アプリケーションに入力することができます。おそらく環境変数を使用しています。あなたのニーズに応じて、このアプローチはすべて間違っている可能性があります。
他の変更があったとき(実際に変更されたことを通知されていない)通知を受ける必要があるアプリを2つだけ持っている場合は、ウィンドウメッセージを送信して接続することができます。
名前付きパイプとメールスロットは、依然として利用可能な最良の選択肢であり、クロスユーザーとクロスプロセスで動作します。もちろん、Vista +ではさまざまな整合性レベルで動作するプロセスに問題があり、セキュリティは以前のOSにも適用されます。これはファイルセキュリティによく似ています。
TCPは、同じマシン内で常に非常に遅く、おそらくはプロセス間でWM_COPYDATAより悪いです。
パイプまたはメールスロットを使用すると、セッションIDを名前の一部にすることによって、ターミナルサービスを処理できます。 TCPは、ポート番号の限られた "名前空間"(常に0から65535までのファイルを持つことができるハードドライブを想像し、各接続には2つのポート番号が必要です)によって常に挑戦されます。
- 1. IPC - Excelと.Netアプリケーション
- 2. ベスト・スケジューラーfor .NETアプリケーション?
- 3. .netとvb6との間のアプリケーション通信
- 4. Mono&.NETのIPC
- 5. .NETコアPOSIX IPC
- 6. AndroidアプリケーションのIPCメカニズム
- 7. ツリー用のベスト.NETライブラリ
- 8. VB6アプリケーションとMAPIの接続
- 9. .Netと同等のvb6 Tabコントロールのパラダイム
- 10. .Net unicode problem、vb6 legacy
- 11. オープンソースのVB6アプリケーション
- 12. VB6アプリケーションのデータベースパスワード
- 13. .NET Coreベスト・リナックス・サーバー・ディストリビューション
- 14. VB6と.Netインターフェイス - 長いVB6データ型は何ですか?
- 15. Android BackupManagerと私のアプリケーションdb:ベスト・アプローチ
- 16. VB6 WinSock TCPクライアントと.NET TCPサーバー
- 17. Windows 10のVB6アプリケーション
- 18. サービスメディエータを持たない.NET IPC
- 19. .NET/VB6アプリケーションがWindows 7で失敗する
- 20. .Netコントロールをvb6アプリケーションに動的に追加する方法
- 21. .net Interop in windows 7 with VB6
- 22. C#、ライブラリ用のベスト.NET Framework 2.0ブック?
- 23. C#とVB6のmdiアプリケーション間のメッセージングinterop
- 24. VB6デスクトップアプリケーション用.net dllとvb6 dllを作成するためのベストプラクティス?
- 25. エラー70 VB6 exeアプリケーション
- 26. vb6アプリケーションのデータバインディングのプログレスバー
- 27. VB6アプリケーションの展開方法
- 28. レガシーVB6アプリケーションのActiveXスペルチェックコンポーネント
- 29. アクセスとVB6アプリケーション - シングルユーザーからマルチユーザー
- 30. VB6のC#.netイベントを購読する
それの問題もまた利点です。私は、単一のユーザーの複数の可能なセッションのように、ターミナルサーバー上の各アプリケーションの多くのインスタンスを使用しています。したがって、私はセッション認識ではないものを使用することはできません。 –