問題タブ [postmessage]

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 投票する
4 に答える
5357 参照

c - どちらが速いですか: SetEvent、SendMessage、PostMessage

環境: Win32、C/C++

たとえば、スレッドが操作を完了したことを main() に通知するために、3 つすべてを使用できます。

しかし、信号の中で最も速いのはどれでしょうか?

うーん...

0 投票する
6 に答える
3251 参照

delphi - TMenuItem への WM_COMMAND の送信

私の Delphi フォームの OnShow メソッドでは、フォームが開いたらダイアログを自動的に開く必要があると判断しました。

ただし、me​​nuitem.Click を呼び出すと、メイン フォームが開く前にダイアログが表示されます。これは私が望んでいるものではありません。

私はそれが私が望むことをするはずだと思っていますが、メニューアイテムにクリックを送るために「wparam」に渡すパラメータが見つかりません。

MSDNのWM_COMMAND ドキュメントでは IDM_* 識別子について説明していますが、Delphi ではどのように表示されるのでしょうか?

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

c++ - PostMessage 経由で文字列を送信するには?

アプリ内で、別のスレッドからダイアログにメッセージを送信したいと考えています。std::exception 派生クラス参照をダイアログに渡したい。

このようなもの:

ダイアログでメッセージを受け取り、エラーを表示したい the_exception.error_string()

std::string the_exception.error_string()using PostMessage を渡すことも問題ないと思います。

0 投票する
4 に答える
1465 参照

javascript - postMessage 経由で渡されるように Web ワーカーでオブジェクトをエンコードするにはどうすればよいですか?

内部的に、Firefox は、postMessage を介して Web ワーカーとの間で渡されるオブジェクトを JSON エンコードします。ただし、これは Firefox (3.6+) の Trunk ビルドでのみ機能し、Firefox 3.5 では機能しないため、問題は、この操作の後方サポートを現在のプラットフォームに追加する方法です。window.atob() および window.btoa() メソッドは以前に提案されていましたが、残念ながらこれらは DOM にアクセスできないため、スレッドの内部では使用できません。

Mozilla は開発者 wiki でこれを公に述べていますが、コミュニティの多くの人がこれが起こることに気づいています。ejohn のブログ テストを確認してください: http://ejohn.org/files/bugs/postMessage/

これも同様であることを確認しました。3.5 では文字列のみを渡し、3.6 ではオブジェクトを渡します。

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

winapi - PostThreadMessage が失敗する

UI スレッドを作成しました。ファイルにデータを書き込む UI スレッドにメッセージを投稿しています。

API を使用PostThreadMessageしてメッセージをユーザー スレッドに投稿しています。私の問題は、投稿したすべてのデータを書き込んでいないことです。たとえば、100 個のデータを投稿すると、ランダムに 3 個または 98 個が実行ごとに異なります。Postdata のハンドラーがすべてのメッセージに対して呼び出されるわけではありません。

の戻り値PostThreadMessageは成功です。

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

winapi - PostMessage を優先しますか?

PostMessage(または他の関連する方法のいずれかで)送信されたメッセージに優先順位を付けることは可能ですか?

たとえば、メッセージである IIRC はWM_PAINT、キューに他のメッセージがない場合にのみ処理されます。カスタム メッセージで同様の動作を実現することは可能ですか?

WM_PAINT(WndProc を制御する) ウィンドウにカスタム メッセージを配信するために特別なパラメーターを使用すると、同様の動作になりますか?

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

c# - SendMessage の問題

Windowsと同様のコピー、貼り付け機能を持つC#を使用してアプリケーションを開発しています。メニュー項目を追加し、それぞれのアプリケーションとリンクしました。

詳細については、次の画像をご覧ください。

シェルメニューに追加されたアイテム http://softwaregenius.net/myimages/menu.jpg

Windows エクスプローラーで複数の項目を選択するように、複数のファイルやフォルダーを選択してから、[OS Util] -> [FastCopy] を選択する必要があります。以下のようにフォームが開きます

FastCopy に表示されるフォーム http://softwaregenius.net/myimages/fastcopy1.jpg

アプリケーションは完全に機能しています。ここでの主な問題は、ファイルを選択した後、これらすべてのファイルがそれぞれのソフトウェア内で開かれることです。つまり、Word 文書を選択すると、ファイル名が FastCopy フォームに追加されますが、Word 内でも開かれます。

調査したところ、この問題は SendMessage が原因であることがわかりました。SendMessage の代わりに PostMessage を使用する必要があります。しかし、そうすると、アプリケーションが機能しません。

以下は、C# 2005 でのメイン関数のコーディングです。

}


以下は、フォーム内の WndProc およびその他のコードのコピーです。

public partial class frmFastCopy : Form { delegate void AddItemToListDelegate(string itm);


これがNativeCodeクラスです

私はあなたたちが天才であることを知っています。選択したファイルを開く必要がある場所を変更する必要があるか、またはポストメッセージをどのように使用する必要があるかを誰かに教えてもらえますか。

貴重な時間を共有していただきありがとうございます。

よろしく

イルファン

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

c# - PostMessage は文字列 C# を渡すことができません

これが私のプロトタイプです:

そして、これが私がそれを使用している方法です:

別のスレッドでこのメッセージをインターセプトできますが、次を使用してボブを取り戻そうとすると:

私はstrでボブを取得しません。

これは、あるスレッドのスタックで「bob」文字列を参照し、その参照が別のスレッドのスタックではまったく意味をなさないという事実によるものだと考えています。しかし、その場合、これらの wparam および lparam ポインターは、同じスレッドで渡されるメッセージに対してのみ実際に使用されますか?

編集* 訂正: スレッドとは、プロセスを意味します。これは、スレッドではなく、プロセス間で文字列を渡す際の問題です。

0 投票する
7 に答える
78250 参照

javascript - JavaScript; 同じオリジンを持つタブ/ウィンドウ間の通信

ウィンドウAとウィンドウBの2つのウィンドウがあります。

  • ウィンドウ A とウィンドウ B は同じドメインを持っています
  • ウィンドウ A とウィンドウ B には親ウィンドウがありません。
  1. ウィンドウAがウィンドウBの参照を取得することは可能ですか?
  2. ウィンドウAにウィンドウBに何かを通知させる最もエレガントな方法は何ですか? (新しい HTML5 仕様を含む)

私がこれを行うことを認識している2つの方法:

  • サーバーによるメッセージング: ウィンドウ B は、ウィンドウ A が何か通知したかどうかをサーバーに定期的に尋ねます。
  • ローカル データによるメッセージング (HTML5): ウィンドウ A がローカル データを変更したことを通知したい場合、ウィンドウ B は定期的にローカル データの変更をチェックします。

しかし、2 つの方法はそれほどエレガントではありません。

例えば、window B の参照を取得して window.postMessage() (HTML5) を使うと良いでしょう。

最終的な目標は、4 つの Facebook タブを開いて 1 つのタブでチャットすると、Facebook のすべてのタブでチャットが最新の状態になる Facebook のようなものを作ることです。

0 投票する
4 に答える
2934 参照

c# - webbrowserコントロールではなく、HtmlElementに直接キーを送信/メッセージを投稿することは可能ですか?

正しいフォーカスのウィンドウだけでなく、ac#Webブラウザのコントロール要素に直接キーを送信したいと思います。

現在、PostMessageとdocumentHandleを使用してキーを送信し、このようにフォーカスすることができます

すなわち擬似コード

誰かがバックグラウンドでこれを行うことができる方法を知っているので、要素に焦点が当てられていないのではないかと思っていました。基本的に、ブラウザのhandle /ptrではなくPostMessageまたはSendKeysAPIで使用するよりも、IntPtrをHtmlElement自体に取得する方法があります。