問題タブ [window-messages]

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 に答える
3204 参照

winapi - Win32: Windows で別のユーザーが実行するプロセスにメッセージを投稿する方法は?

2 つのアプリケーションを実行し、それぞれが RegisterWindowMessage() を使用して同じメッセージを登録します: アプリケーション A は通常のユーザーとして、アプリケーション B は管理者として、マシン上の同じユーザーのセッションで、これらのアプリケーションはこのメッセージを互いに送信します。A と B が同じユーザーとして実行された場合、すべて問題なく、PostMessage() メッセージングを使用して通信できました。アプリケーション B が管理者として実行されると、メッセージは表示されなくなります。私たちはそれについて何ができますか?

この状況では、他のメカニズム (メッセージ以外) を使用する必要がありますか?

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

c# - 指定されたウィンドウ ハンドルで、On Handle Rect Change イベントをリッスンします。

ウィンドウへのハンドル (HWND) があり、外接する四角形の変更をリッスンしたいと考えています。GetWindowRect(HWND hWnd, LPRECT lpRect);nミリ秒ごとにチェックできましたが、それは本当に無駄なようです。

リッスンできる Windows メッセージはありますか?

ウィンドウ ハンドルは、私が所有するウィンドウに対するものではありません。

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

c++ - PostMessage と SendNotifyMessage を使用した所有ウィンドウへのブロードキャスト

最近、2 つの Win32 API 呼び出し "PostMessage" と "SendNotifyMessage" の間に奇妙な違いがありました (少なくとも Win7 64 ビット SP1 で気付きました): 別のプロセスの所有されたトップレベル ウィンドウは、ブロードキャストされたメッセージ (HWND_BROADCAST) を "その WndProc で「SendNotifyMessage」でブロードキャストされたメッセージを受信して​​いる間、PostMessage」。

送信されたメッセージは、「RegisterWindowMessage」への呼び出しの助けを借りて登録されています。

Spy++ を使用しても、「PostMessage」を使用するとメッセージが到着するのを確認できません。さらに、「PostMessage」を使用して特定の HWND にメッセージを直接送信すると、期待どおりに到着することにも言及したいと思います。したがって、「PostMessage」のウィンドウ内部実装は、ブロードキャストの実行を反復するときにウィンドウをスキップするだけのようです。

それぞれの MSDN のドキュメントを読んでも、この違いに関する記述は見当たらず、これが PostMessage または SendNotifyMessage のバグなのかどうか、また Windows の将来のバージョンで引き続きこの動作を示すために SendNotifyMessage に依存できるかどうか疑問に思っています。

では、この状況で両方の機能がブロードキャストを異なる方法で処理する理由について、誰かがもっともらしい説明を持っていますか?

さらに、PostMessage を使用して、所有されているトップレベル ウィンドウにブロードキャストする方法があるかどうかを尋ねたいと思います。します)。

トップレベルの所有ウィンドウに到達したい理由に興味がある場合: WPF では、非表示の所有者ウィンドウを持つトップレベル ウィンドウを所有することにより、ウィンドウはタスクバー (Window.ShowInTaskbar プロパティ) から隠されます。

このトピックに関するアイデアやコメントをお寄せいただきありがとうございます。

添付ファイル: ここに動作を示すサンプルがあります...単純にビルドして 2 回開始します...2 番目のプロセスは、最初のプロセスにメッセージを表示する必要があります。ビルド EXE を含む完全なソリューションへのリンクもここにあります:完全な VS ソリューションへのリンク

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

c++ - ユーザーが [キャンセル] をクリックしたときに FindText ダイアログが閉じていることを確認する方法

このコードは単純な FindText ダイアログ ウィンドウを生成し、ユーザーが右上の X ウィンドウの閉じるボタンをクリックすると WM_CLOSE メッセージがフック プロシージャに送信されますが、[キャンセル] ボタンをクリックしても、ウィンドウが閉じられたことを示すメッセージは生成されません。

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

windows - CloseWindow と WM_CLOSE の関係は何ですか

私は現在少し混乱しています: WM_CLOSE::CloseWindow何らかの形で「関連」しているのか、それともまったく異なるものですか?

Closing Windowsのドキュメントでは、API 関数についてはまったく言及されていませんCloseWindow。本当に「MinimizeWindow」と呼ばれるべきCloseWindowですか、それとも何が欠けていますか?

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

.net - BroadcastSystemMessage の呼び出しが終わらない

BroadcastSystemMessageからメソッドを呼び出していUser32.dllます。1 台の PC (Windows8 Pro) でメソッドが呼び出されますが、呼び出しが終了しません。アプリケーションは待機していますが、結果 (または例外) が返されません。複数の Windows8 コンピューター (異なるハードウェア、ウイルス対策の有無など) で試しましたが、これらのコンピューターではこの動作は発生しません。

ターゲット コンピューターには、カスタム メッセージを登録するアプリケーションがインストールまたは実行されていません。したがって、すべてのアプリケーションはブロードキャストを無視する必要があります。

この動作は正しいですか? MSDN でそれについての言及は見当たりませんでした。どうしたの?タイムアウト後に呼び出しを停止する正しい方法はありますか?

アドバイスやヒントは大歓迎です。

コードは次のとおりです。

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

c++ - WINAPI GetMessage HWND

私は Win32 API でウィンドウの作成に取り組んでいますが、この部分に問題があります:

私の問題は、hwnd以前に作成したウィンドウへのメッセージを受信する 2 番目のパラメーター ( ) を変更しようとすると、機能しないことです。たとえば、ウィンドウを閉じようとすると、非表示になるだけで閉じません。

完全なコードは次のとおりです。

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

c++ - Windows (C++) でのウィンドウ メッセージの問題 (遅延)

アプリケーションに問題があります。長いシステム ダウンタイムまたはスリープ ウィンドウ メッセージの後、数秒の遅延が発生します。ウィンドウがこのメッセージを受信すると、それ以降のすべてのメッセージは通常どおり続行されます。手動で呼び出され、次のようなウィンドウ メッセージをスローするメソッドを作成しました。

何も変わっていません。メッセージを送信するのではなく、受信するのと同じ問題のようです。それが何と接続できるか誰が知っていますか?

(Windows XP から Windows 8.1 までのシステムでテスト済み。C++ Builder を使用して作成。x86 アプリケーションでコンパイル)