問題タブ [cross-process]

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.

0 投票する
1 に答える
1028 参照

android - CrossProcessCursor 互換のジェネリック カスタム CursorWrapper を実装する方法

なんとか動作する を作成できましたが、プロセス全体CursorWrapperを使用したいときに行き詰まります。ContentProvider

CrossProcessCursorこれらの投稿では、インターフェイスの実装方法、特にハードで文書化されていないfillWindow()方法についても示しています。

問題は、実世界のカーソルがバインドされているためfillWindow()、すべての列にブロブ、文字列、または...のいずれかを含むカーソルを処理する実装しか考えられないが、それらの組み合わせは考えられないことです。ここでの本当の問題は、機能の欠如getType()(v11 以降のみ存在)、またはgetRaw()putRaw()文句を言わずにバイナリをコピーするだけの/です。返されたカーソル値で不要な変換を発生させずに、これをどのように処理しますか?

0 投票する
1 に答える
560 参照

c# - 最も互換性のあるプロセス間通信プロトコル

別のアプリケーションがクエリステータス情報と通信できるようにする外部 API ライブラリを提供したいメディアアプリケーションに取り組んでいます。私のアプリケーションは C# で書かれており、API DLL は同じです。最初は、WCF と名前付きパイプを単純に使用することを考えていました。インターフェイス全体を非常に簡単にコーディングできるからです。

ただし、これを行うと、たとえば Android や Web リモートを作成したい場合に、他の言語やプラットフォームがアプリケーションと通信することがほぼ不可能になることに気付きました。

では、C# コード内からの高速でシンプルなインターフェイスを可能にするだけでなく、他のプラットフォームで API を記述できるようにするために、どのプロトコルを使用できますか?

基本的な要件は次のとおりです。

  • ローカルおよびリモート通信
  • 低オーバーヘッド
  • 手続き呼び出し
  • ファイル転送 (メディアを送信するため)
  • 既存の C#、オープン ソース ライブラリがあれば便利です。

以前に XML-RPC と JSON-RPC を使用して、多くのオプションを見てきましたが、コミュニティが最良のオプションであると考えているものを知りたいです。

0 投票する
3 に答える
11096 参照

c# - ミューテックスを破棄する必要がありますか?

システムMutexでロック(クロスプロセス)したい共通データベースを持つ2つのWindowsサービスに取り組んでいます。

WaitOne()今、私はただ呼び出してブロックReleaseMutex()で大丈夫なのか、それともtry-finallyミューテックスも(たとえばusingブロックで)破棄するべきなのか疑問に思っています。もしそうなら、私は常にメソッドをキャッチする必要があると思いAbandonedMutexExceptionますか、WaitOne()それとも私はここで間違っていますか?

0 投票する
2 に答える
2610 参照

c# - 高速テキスト入力を別のプロセスに送信 (ウィンドウ)

別のプログラムのウィンドウにテキスト メッセージを送信する C# WPF プログラムを作成しています。キーボード ドライバー (Logitech g15) の一部として、既にこれを行っているマクロ プログラムがありますが、キーストロークをプロセスに直接送信するのではなく、現在フォーカスされているウィンドウに送信します。それはうまくいきますが、私のプログラムからも入力を送信できるようにする必要があります。このプロセスを使用している人が他にもいるため、私のプログラムからの入力テキスト メッセージは、私のテキストが彼らの入力を妨げないように十分に高速である必要があります。問題は、ac# プログラムでこれを実行しようとすると、遅延が大きくなりすぎることです。マクロ プログラム (Logitech G-Series Profiler) はコマンドを即座に送信します。処理するメッセージを送信するために、次の 3 つのコマンドを試しました。(最も遅いものから最も速いものへの順でリストされています)

名前にあるのかもしれませんが、これは非常にゆっくりとコマンドを実行するので、実際にテキストを 1 文字ずつ入力するので、テキストを目で追うことができます。「SendKeys.Send」メソッドを使用してみましたが、「アプリケーションが Windows メッセージを処理していないため、このアプリケーション内で SendKeys を実行できません」というエラーが表示されます。</p>

PostMessage は少し高速ですが、それでも私のプログラムの目的には十分ではありません。メッセージがプロセスによって読み取られる前にメソッドが戻ることに加えて、これは、2 つの連続する PostMessage 呼び出しが連続したメッセージを送信しない可能性があることを意味します。

これは PostMessage よりも高速ですが、Logitech のマクロ プログラムほど高速ではありません。また、受信プログラムは入力を奇妙に処理します。明らかに、キーボードからの「本物の」入力と同じようには処理しません。

これは私が試した最後のことです。テキストがプロセスに送信される方法は瞬時に見えます。ただし、別のプログラムをフォアグラウンド ウィンドウとして設定すると、Keyboard.FocusedElement が null を返すため、これを自分のプログラムにしか送信できませんでした。誰かが別のウィンドウの IInputElement を取得する方法を教えてくれたら、ぜひ知りたいです。あるいは、誰かが入力を送信するためのより良い方法について提案を持っている場合は、それを聞きたいと思っています.

仕様: Windows 7、64 ビット Visual Studio 2010、Framework 4

0 投票する
1 に答える
2044 参照

c# - 他のウィンドウから ListView アイテム テキストを取得する

Windows 7 のデフォルトの再生デバイスを変更する小さなアプリケーションを作成したいと考えています。唯一の解決策は、サウンド アプレットを操作することでした。デバイス名を持つ SysListView32 ウィンドウへのハンドルを取得することに成功しましたが、ListView からテキストを取得できません。

これは使用されるコードです:

結果 (strLvi) はいくつかの漢字です。スクリプトの何が問題になっていますか?

UPDATE : LVITEM 構造体は次のとおりです。

sLIstView ハンドルは正しいです... チェックインされた spy++ です。問題の場所を確認するには、どのようなテストを実行する必要がありますか? それが助けになるなら、私はあなたにすべてのスクリプトを与えることができます.

0 投票する
3 に答える
2678 参照

c# - 双方向クロスプロセス通信

システムのようなプラグインサンドボックスが欲しいプロジェクトに取り組んでいますが、双方向のリアルタイムクロスプロセス通信の実行に問題があります。最初はオブジェクトメタデータを渡すことができるWCFについて考えましたが、すぐにWCFのサービスクライアントモデルが問題になることに気付きました。しかし、私がすべてのアイデアと質問を置く前に、ここに私が計画したものがあります。

ほとんどの作業を実行するホストアプリケーションが必要です。このhost.exeを呼び出します。host.exeは、プログラムのメインアプリケーションロジックと、プラグインの起動、実行、および強制終了をホストします。プラグインは、MEFを介してプラグインをホストするプラグインプロキシを介してホストされるため、proxy.exeと呼びます。proxy.exeはプラグインdllをロードし、障害を分離する人里離れた環境でそれらをホストし、プラグインが失敗した場合、アプリケーションではなくプロキシを強制終了します。ホストとプロキシは双方向でリアルタイムに通信する必要があります。複数のプロキシホストが存在するため、オブジェクトデータを渡すことができるのが最適です。

それが私が欲しいものの基本的な考え方です。私はこれを行うためのいくつかの方法を考えていました。最初はWCFでしたが、WCFの動作方法は、サービスのサーバーがクライアントに要求/コマンドを送信することが不可能ではないにしても難しいと考えました。次のアイデアはTCPを使用し、ホストをTCPサーバーにして、通信に使用できるメッセージングプロトコルを開発しますが、WCFメタデータの贅沢がなく、複雑なクラス情報を渡すため、問題が発生します。正気を失っている。

私のすべての研究を通して、私は問題を次々と思いついたので、誰かがこの問題の解決策を提案することができれば幸いです。ありがとうございました。

0 投票する
1 に答える
173 参照

c# - オブジェクトを1回だけ作成するための同期オブジェクト

オブジェクトを一度作成して初期化し、最後のインスタンスが終了したときに一度だけ閉じて破棄できる、ある種のクロスプロセス同期オブジェクトが必要です。

たとえば、生涯は次のようになります。

新しいインスタンス1:オブジェクトを作成して初期化します

新しいインスタンス2:何もしない

インスタンス1を削除:何もしない

インスタンス2の削除:オブジェクトを閉じて破棄します

名前付きイベントは機能する可能性があると思いましたが、インスタンスでの異常な作成と破棄をどのように処理できるかわかりません。

0 投票する
3 に答える
15782 参照

c++ - VC ++ 2005でOpenProcessToken、AdjustTokenPrivileges、およびGetExitCodeProcessを使用する方法

プロセスが別のプロセスから終了したかどうかを確認する方法に関するいくつかの投稿を読み(ここでセマンティクスに夢中になっている人もいますが、ユーモアを交えて)、実装しようとしましたが、エラーコード5が発生しています。 ("ERROR_ACCESS_DENIED")いたるところに。

これが私がすることです。

1)プロセス1(P1)はプロセス2を起動し、共有メモリの場所に独自のPIDを書き込みます。

2)プロセス2(P2)は共有メモリからPIDを読み取ります

3)P2はP1のPIDを使用してOpenProcess(...)を呼び出し、後で確認できるハンドルを保存します。

4)P2はP1のPIDを使用してGetExitCodeProcess(...)を繰り返し呼び出し、STILL_ACTIVEコードをチェックします。

上記のメソッドでは、GetExitCodeProcessでACCESS_DENIEDエラーが発生し続けます。私はMSDNのドキュメントから以下のコードを使用してP2の特権を変更しようとしました:

しかし、OpenProcessToken(...)メソッドの呼び出しでACCESS_DENIEDエラーが発生し続けます。それで、これはある種のシステムレベルのハードルを示していますか?私は自分のマシンの管理者権限を持っており、XPを実行しています。

助けてくれてありがとう。

0 投票する
1 に答える
4819 参照

c++ - ダイアログ「切り替え」-「再試行」-「キャンセル」を無効にする方法

2つのプロセス間で通信し、退屈なダイアログが表示されることがよくあります。「他のアプリケーションがビジーであるため、このアクションを完了できません。ビジー状態のアプリケーションをアクティブにして問題を修正するには、[切り替え]を選択してください。」

次に、3つのボタンがあります:[切り替え...]、[再試行]、[キャンセル]。

とにかくダイアログを無効にできますか?

0 投票する
1 に答える
120 参照

php - PHP-処理するデータへのアクセスと送信

私は小さなclient-server-applicationをプログラミングしてきましたが、今度はserver-processの出力を小さなserver-webpageに表示したいと思います。サーバーコンソールのキーを押すたびに、現在の状態が出力されます。サーバーが稼働していて、サーバーの現在の状態を表示したい場合、これをPHPでどのように実装しますか?

私の考えは、プロセスを取得してから、キー入力を送信することでした。これをPHPでどのように実装できますか?サーバーは、ApacheおよびPHP5.4を搭載したDebian6で実行されています。

前もって感謝します