問題タブ [ipc]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - .NET C# WPF アプリケーション/DLL へのデータの受け渡し
Mutex を使用して単一インスタンス アプリケーションにしようとしている .NET C# WPF アプリケーションがあります。
この .NET アプリケーションは、CreateProcessAsUser() を使用して C++ ベースの DLL によって呼び出され、環境変数を介してパラメーターが与えられます。
以降のインスタンスも同様に C++ DLL によって作成されます。
後続のインスタンスは、終了する前にアプリケーションの最初のインスタンスにパラメーターを渡す必要があります。
問題は、後続のインスタンスがデータを .NET アプリケーションの最初のインスタンスに渡すことができるように、.NET アプリケーションでどのメソッドを使用できるかということです。シンプルであるほど良い。
私はいくつかを調査しましたが、もっと簡単な方法があることを願っています。
私が研究したこと:
- 名前付きパイプ
- .NET リモート処理
- Windows Messaging (WM_COPYDATA を最初のインスタンス ウィンドウに送信)
最初のインスタンスに 4 つの文字列を渡そうとしているだけなので、上記の方法は私の問題ではやややり過ぎなので、回避しようとしています。
私が考えることができる最も簡単な方法は、.NET アプリケーションから関数をエクスポートして、.NET アプリケーションの後続のインスタンスが .NET アプリケーションの最初のインスタンスでこの関数を呼び出し、関数のパラメーターとしてデータを渡すことができるようにすることです。 . しかし、これは .NET で可能ですか? .NET EXE または DLL が関数をエクスポートできないことを読みました。
ありがとう!
c - 組み込み Linux に適したオープン ソース メッセージ バスとは?
組み込み Linux デバイス (Linux および uClinux) に適したオープン ソースの優れたメッセージ バスを探しています。
次の基準を満たす必要があります。
- uClinux は静的リンクのみをサポートするため、フリー ソフトウェアおよび LGPL またはよりリベラルなライセンスである必要があります
- C API が必要です
- フットプリントが比較的小さく、サードパーティのライブラリに依存しない必要があります
- Linux/uClinux 2.4.22+ と互換性がある必要があります
- 十分にテストし、できれば既存のテスト フレームワークをセットアップする必要があります。
- 十分に文書化されたプロトコルが必要です
- 他のプラットフォームに移植可能であるべき
メッセージバスは、主にシステム上のアプリケーションによって構成パラメーターなどを通信するために使用されるため、リアルタイムの要件を満たす必要はありません。
windows - WindowsでGUIアプリケーションを組み合わせる方法
Qtフレームワークを使用しているWindowsGUIアプリケーションがあります(現在、バージョン3.3.5、Qt4に変更される可能性があります)。
メインアプリケーションで他のWindowsGUIアプリケーションを組み合わせたい。制御できないいくつかの制約があるため、メインアプリケーションでウィジェットを直接使用することはできません。最終的なレイアウトは次のようになります。
現在、ホスティング.exeアプリケーションで概説されている方法をダイアログに使用しています。HWND
子アプリケーションを渡すために、プロセス間で独自のIPCを使用しています。次に、子ウィンドウresizeEvent
を呼び出すQtを使用してサイズ変更イベントを転送する必要があります。::MoveWindow
これを行うためのより良いまたはより一般的なメカニズムはありますか?ActiveXを使用することを提案する人もいましたが、このテクノロジについては十分に理解していません。
c# - .NET と Java クライアント アプリケーション間の IPC
ブローカーやサーバーを一切使わずに、2 つの異なるクライアント アプリケーションの会話を取得する必要があります。Java と .NET の 2 つのプロセス間で IPC を行うための最良の方法は何ですか?
マルチユーザー端末サーバーで動作する必要があるため、ソケットは使用しないでください。軽量でシンプルで、プラグ アンド ランが必要なので、RMI/WS は使用しないでください。
Mutex と名前付きパイプにアクセスするための JNI について考えていますが、正しい方向に進んでいますか?
どんなアイデアでも大歓迎です!
ありがとうデニス
ipc - UnixドメインソケットではないストリームでD-Busを使用できますか?
プロジェクトでDBusを使用しています。DBusの仕様から、低レベルの通信にはUnixドメインソケットを使用していることがわかります。connect()
呼び出しが変更されているため、低レベルの通信にUnixドメインソケットを使用したくありません。DBusがサポートしている、使用しない他のタイプの低レベル通信はありますconnect()
か?はいの場合、そのモードに切り替える方法は?
.net - .NET2.0 リモーティング - ClientChannel の登録が必要な理由
.NET Remoting を使用する必要があるクライアント/サーバー アプリケーションがあります (プロジェクトが Framework 2 を使用しているため、WCF ではありません)。
次のコード (MSDN から大量にコピー) が機能します。
しかし、これらの 3 行は何をするのでしょうか?
_clientChannel は、その後の作業コードのどこにも使用されません。作業コードは、これらの 3 行がなくても機能するようです。機能を失わずにそれらを取り除くことはできますか?
c++ - 単純な匿名パイプ - 使用するラッパー モデルは? (WinAPI、C++)
Windows で 2 つの実行中のプロセスがあり、各プロセスには他のプロセスへのパイプがあります。
複雑なクラスをシリアル化し、あるプロセスから別のプロセスに送信したいと考えています。シリアル化手順は既に完了しており、パイプがバイナリ ストリームを送信していることを理解しています。シリアル化されたデータを送信するにはどうすればよいですか? WinAPI と C++ を使用しています。
カスタムプロトコルを開発する必要がありますか? もしそうなら、それはこの特定のクラスにジェネリックまたはユニークであるべきですか? シリアル化されたクラスを送信するときに仮想テーブルを保持できますか?
この場合に一般的に使用されるモデルまたは設計パターンはありますか? 少しのサンプルコードをいただければ幸いです。ありがとうございました!
c++ - 別のアプリケーションのウィンドウのテキスト フィールドから読み取る
Windows アプリケーションが別のアプリケーション データ、具体的には GUI のテキスト入力フィールドにアクセスし、そこにあるテキストを取得して、独自のアプリケーションで処理する方法はありますか?
可能であれば、それを防ぐためにアプリケーションを「シールド」する方法はありますか?
EDIT:最初の3つの答えは、そのウィンドウの特定のテキスト入力フィールドではなく、別のアプリケーションウィンドウのタイトルを取得することに関するものです。
私はWindows APIを期待していないので、そのウィンドウで特定のテキストフィールドを見つける方法をより正確に教えてください.どうすればそれを取得できますか?など...)
C++ のコード スニペットは本当にありがたいです。Win32-API にはひどい命名規則があるため、MSDN のヘルプを参照するのは困難です。
完成!C++ でのハウツーについては、以下の私の回答を参照してください。
perl - 大量のメモリを使用する Perl デーモン内で複数のソケットを処理するにはどうすればよいですか?
IO::Socket::INET を使用して、Perl でクライアント サーバー プログラムを作成しました。CGI ベースのサイトからサーバーにアクセスします。サーバー プログラムはデーモンとして実行され、複数の同時接続を受け入れます。私のサーバー プロセスは、約 100MB のメモリ空間を消費します (9 つの大きな配列、多くの配列...)。これらのハッシュをメモリに常駐させて共有し、接続ごとにハッシュを作成する必要がないようにしたいと考えています。ハッシュの作成には 10 ~ 15 秒かかります。
ソケットを介して新しい接続が受け入れられるたびに、新しいプロセスをフォークして、受信した各接続の処理を処理します。親プロセスは巨大であるため、フォークするたびに、プロセッサは新しい子プロセスにメモリを割り当てようとしますが、メモリが限られているため、新しい子プロセスを生成するのに時間がかかり、応答時間が長くなります。1回の接続でも何度もハングアップします。
親プロセスは 9 つの大きなハッシュを作成します。子ごとに、読み取り専用モードで 1 つ以上のハッシュを参照する必要があります。子を通じてハッシュを更新しません。親によって作成された 100 MB 全体またはグローバル変数全体をすべての子と共有できるコピー オン ライトのようなものを使用したいですか? またはスレッドのような他のメカニズム。サーバーは 1 秒あたり最低 100 のリクエストを受け取り、それらすべてを並行して処理できるはずです。平均して、子供は 2 秒で退出します。
Windows XP で Cygwin を使用しており、RAM は 1GB しかありません。この問題を克服する方法が見つかりません。何か提案できますか?変数を共有し、1 秒あたり 100 個の子プロセスを作成して管理し、同期するにはどうすればよいですか?
ありがとう。
perl - Perl スクリプト内から Perl スクリプトを実行するにはどうすればよいですか?
別の Perl スクリプトを実行する必要がある Perl スクリプトがあります。この 2 番目のスクリプトはコマンド ラインで直接実行できますが、最初のプログラム内から実行する必要があります。スタンドアロンで実行するときに通常渡されるいくつかのパラメーターを渡す必要があります (最初のスクリプトは定期的に実行され、2 番目のスクリプトは特定のシステム条件下で実行されます)。
予備の Google 検索では、バックティックまたは system() 呼び出しを使用することをお勧めします。それを実行する他の方法はありますか?(私たちが話しているのはPerlなので、私はそうだと思います:P)呼び出されたプログラムから出力をキャプチャする必要がある場合、どの方法が優先されますか(そして、可能であれば、2番目のプログラムが直接呼び出された)?
(編集:ああ、SOはいくつかの関連する質問を提案しています。これは近いですが、私が求めているものとまったく同じではありません。2番目のプログラムは、実行に1時間以上かかる可能性があります(多くのI / O)ので、 1 回限りの呼び出しがこれに適しているかどうかはわかりません。)