問題タブ [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.
c++ - ウィンドウ メッセージ WM_UAHDRAWMENUITEM (0x92) の定義の場所
ウィンドウ描画メッセージを処理するフック dll を作成しています。
Vista 以降では、不明なメッセージ ID がフック DLL によって受信されることがわかりました。具体的には 0x90 ~ 0x95 です。
私はいくつかのグーグルを行い、msdnリンクとこれを見つけました。これは、それらがどのようなメッセージであるかを教えてくれました:
しかし、どのヘッダー ファイルにもマクロの定義が見つかりませんWM_UAHDRAWMENUITEM
。コンパイラは「未定義のシンボル」について文句を言います。「WM_UAHDRAWMENUITEM」でグローバル検索を行いましたが、何も見つかりませんでした。
現在、このメッセージを処理するために 0x92 を使用しています。
私の質問は、ハードコードされた 0x92 を Windows 定義のマクロにうまく置き換える方法は?
c# - WndProc メッセージ = 49619 -何ですか?
wpf のドラッグ バグをデバッグしており、wndproc を購読しています。wparam=0 および lparam=0 のメッセージ ID 49619 を受け取りました。私はグーグルの努力を尽くしましたが、このウィンドウメッセージの名前が何であるかを明らかにすることができませんでした.
あなたが知っているなら、素晴らしい。ウィンドウ メッセージのリストにそれを含む Web サイトを提供できれば、さらに効果的です。
16 進値 = 0xC1D3
c++ - Windows メッセージを受信/キャプチャできません
私はコンテキストにかなり慣れてMFC
いMessage handling
ません。
派生クラスを持つDLL
コンシューマ アプリケーションがあります。これで a が呼び出され、 aなどがこのウィンドウに表示されます。CFrameWndEx
CMainFrame
DLL
CDialog
MainFrame
アプリケーションで特定のメッセージを受信したいと考えています。
そこで、DLL コンシューマ アプリケーションのメッセージ マップで予想されるメッセージを宣言し、適切なメッセージ ハンドラを定義しました。
アプリケーションがこれらの登録されたメッセージを送信していることはわかりますが、Consumer Window でメッセージを受信/処理することはできません。つまり、それらのメッセージがブロードキャストされても何も起こりません。
Mainfrm.h
Mainfrm.cpp
以上のことから、これらのメッセージをブロードキャストする別のアプリケーションからこれらのメッセージを受信するように、コンシューマ アプリケーションが登録されていることがわかります。
ただし、メッセージがブロードキャストされている状態を作成すると、メッセージを受信する他のアプリケーションから確認できるように、アプリケーションでそのようなメッセージがキャッチされません。
問題がどこにあるのかわかりません。ウィンドウは、内部に別のCDialog
派生物がありますが、常に上にあります。DLL
c++ - コントロール内からダイアログの最小化を決定する
ダイアログ上にあるコントロール内からダイアログの最小化を決定する方法はありますか?
ダイアログが最小化されたときにON_WM_SIZE
Type で呼び出されるウィンドウ メッセージを使用しています。SIZE_MINIMIZED
ただし、ダイアログが最小化されている場合、このメソッドは呼び出されません。コントロールが再び復元されるときに、透明度を使用してコントロールを正しく再描画するために、その最小化を追跡する必要があります。
windows - シェル拡張でウィンドウ メッセージをインターセプトする方法
RegisterWindowMessage
特定のウィンドウ メッセージ (に登録されたカスタム メッセージ) が別のアプリケーションによってブロードキャストされたときに、その構成をリロードする必要があるシェル拡張機能があります。
メッセージを傍受するためにいくつかの方法を試しました。
を使用して、Windows エクスプローラーのウィンドウにウィンドウ サブクラス コールバックをインストールします
SetWindowSubclass
。これは Window 7 では機能しますが、Windows 8 では機能しません。明らかDllMain
にメイン スレッドでは呼び出されSetWindowSubclass
ず、別のスレッドからは機能しないためです。これはドキュメントに記載されています:サブクラス化ヘルパー関数を使用して、スレッド間でウィンドウをサブクラス化することはできません
CALLWNDPROC
を使用して のフックをインストールしSetWindowsHookEx
ます。システム全体の速度を落としたくないので、特定のスレッド (エクスプローラーのメイン スレッド) だけにフックをインストールします。これは Windows 8 では機能しますが、Windows 7 では機能しません...これは、間違ったスレッドにフックしているためだと思われますが、よくわかりません。とにかく、このアプローチは過度に邪魔に思えます。メッセージを処理するメッセージのみのウィンドウを作成します。メッセージのみのウィンドウはブロードキャストされたメッセージを受信しないため、これはまったく機能しません。
シェル拡張でウィンドウ メッセージを確実に受信する方法はありますか?
最初はウィンドウ メッセージがシェル拡張機能に通知する最も簡単な方法のように思われましたが、別のメカニズムがより適切であると思われる場合は、提案をお待ちしています。
c++ - 新しく作成されたデスクトップがキーボード イベントを受信しない
新しいデスクトップで起動する小さなプログラムを作成しました。
その後、次の行を使用して、そのデスクトップで別のアプリケーションを開始しました。
pathModuleName
によって取得された自己位置GetModuleFileName(NULL)
です。
新しく作成されたアプリケーションは、HWND を別のウィンドウに取得し、次のコマンドを使用してウィンドウ メッセージを送信します。
したがって、基本的A
に、デスクトップ DEFAULT 上のアプリケーションは、デスクトップ X でアプリケーションを開始し、同じデスクトップ X で開始されたB
別のアプリケーションへの HWND を取得します。C
B
私の問題は、デスクトップ Xのアプリケーションからのキーボード イベントがアプリケーションでトリガーされないことですC
。を使用した場合にのみSwitchDesktop(B)
、イベントがトリガーされ、コードが適切に実行されます。
私は何が欠けていますか?
c# - Winforms で WinKey+D キー シーケンスをキャッチする
アプリケーションが常にデスクトップ レベルで表示されるようにしようとしています。これは、アプリが LWin+D や RWin+D などのキー シーケンスを無視する必要があることを意味します。私はそれをこのように動作させようとしました:
ただし、D ボタンなしで、RWin/LWin ボタンのみをキャッチします。
また、独自のメッセージ フィルタを作成しようとしましたが、うまくいきませんでした。これらすべてのメッセージと Bitwise:
では、アプリケーションで R/LWin+D をキャッチ/無視するにはどうすればよいでしょうか?
sendmessage - Windows で PostMessage を介して受信側ウィンドウがデータを取得しない
void SendDataFromWorkerThread(HWND ハンドル)
{
}
別のスレッドで受信中..
void GetDataFromWorkerThread(WPARAM wparam, LPARAM lparam)
{
}
私のアプリケーションはシングル スレッドで、一部の作業 (x 値 "10" を超えるデータを返す) をワーカー スレッドに委任しています。メッセージは正しく取得していますが、データは取得していません。