問題タブ [windows-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.
windows - ウィンドウメッセージ通知-言語とロケール
ロケール設定、特に日時と言語を変更したときに、winメッセージが何であるか/送信されるかを知りたいです。
ウィンドウのテーマが変更されると、WM_THEMECHANGEDを受け取ります。
delphi - メッセージを別のウィンドウに渡す
受信したすべてのメッセージを別のウィンドウに渡すアプリケーションを作成したいと思います。たとえば、ユーザーがいくつかのキーを押したり、マウスをその上に移動したりできるアプリケーションがあり、これらすべてのメッセージを MS ペイントなどに渡したいとします。
どうすればいいですか?何か案は?私の知る限り、キーストロークを別のウィンドウに送信すると問題が発生する可能性があるので、アドバイスもお願いします。
編集
わかりました、私が探しているものの詳細を説明します。
マイ アプリケーションは、別のアプリケーションのウィンドウをフォームに表示します。ここで、アプリケーションのフォームに送信されたメッセージ (キーの押下、マウスの移動など) を使用して、他のウィンドウを制御したいと考えています。
フォームが受け取るすべてのメッセージを、自分自身に「埋め込む」アプリケーションのウィンドウに渡すことを考えています。「埋め込む」とは、アプリケーション ウィンドウをフォームに表示することを意味します。
多分私の問題には別の解決策があります。ご意見をお聞かせください。
お時間をいただきありがとうございます。
c# - SendMessage API 関数のマネージド アナログまたは C# からウィンドウにメッセージを送信する方法は?
あるアプリケーション (コンソール) から別のアプリケーションのウィンドウにウィンドウ メッセージを送信したいと考えています。WinAPI 関数の SendMessage または PostMessage を使用できますが、それを行う管理された方法はありますか?
c# - Windows メッセージの処理方法
ListView 内のチェックボックスがダブルクリック イベントでチェックされないようにしようとしています。
私はすでにやった:
でもcheckedイベントが呼び出されて四角いボックス内でチェックマークが点滅するので、本当に手間がかかると思います。
私はこの答えに出くわしました: C# を使用して ListView の ItemChecked イベントが SubItemClicked に干渉しないようにする
そうするのに最適な方法のようですが、これを機能させる方法がわかりません。通知やメッセージなどについて少し読んでみましたが、コードに適用するのに十分なほど不安定なものは見つかりませんでした。
誰かがこれについて私に光を当てることができますか?
どうもありがとうございました!
c# - C# でプロセス境界を越える Window Message の lParam プロパティで受信した IntPtr からの Fill struct
数日前にこの質問を投稿しましたが、IntPtr を構造体にマーシャリングすることについて、いくつか疑問があります。
事は次のようになります: 私が参照している質問で述べたように、私はネイティブ Dll で非同期メソッドを呼び出します。これらのメソッドは、Windows メッセージで完了を伝えます。Windows メッセージを正しく受け取り、その中に lParam プロパティ (IntPrt 型) を受け取りました。私がフォローしているドキュメントによると、この lParam は、メソッドの実行結果を持つ構造体を指しています。特定の例として、私が埋めようとしている構造の 1 つが次のように定義されています。
元の C 署名:
私のC#定義:
ここで面白いのは、私が呼び出しているネイティブ Dll は、同じマシン (単一インスタンス) で実行されている独立したプロセス FWMAIN32.EXE に属しているということです。私が受け取ったウィンドウ メッセージは、アプリケーション固有 (WM_USER の上) であり、実際には期待している構造体を指していない LParam を返し、その構造体は FWMAIN32.EXE プロセスのメモリ空間のどこかにあると思います。
最初に、私は Marshal.PtrToStructure だけを試みましたが (実際にはほとんど望みがありませんでした)、構造体がガベージ データでいっぱいになりました。GetLParam でも同じ結果を試しました。最後に、次の投稿で説明されているように、ReadProcessMemory API を使用してプロセスの境界を越えようとしました。
C# p/invoke、所有者描画リスト ボックスからのデータの読み取り
http://www.codeproject.com/KB/trace/minememoryreader.aspx
例外コード 299 が表示されます (ERROR_PARTIAL_COPY: ReadProcessMemory または WriteProcessMemory 要求の一部のみが完了しました。) さらに、ReadProcessMemory を使用して取得した byte[] は次のとおりです: 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
私のコード:
そして、私はそれを次のように使用します:
この場合、プロセスの境界を越えることは正しいですか? ReadProcessMemory のベース アドレスとして lParam を使用するのは正しいですか? CLR は lParam を使用できないものに変えていますか? 299 例外が発生するのはなぜですか? FWMAIN32.EXE のプロセス ID を正しく取得できますが、lParam がそのメモリ空間内を指していることを確認するにはどうすればよいですか? 「安全でない」の使用を検討する必要がありますか? 誰もそのアプローチを推奨できますか? 構造体をカスタムマーシャリングする他の方法はありますか?
1 つの投稿にあまりにも多くの質問があることは承知していますが、それらはすべてこの問題の解決を指していると思います。事前にご協力いただきありがとうございます。長くなってしまい申し訳ありません。
c++ - ウィンドウの X ボタンをクリックしてマウスを押したままにすると、WM_TIMER メッセージが抑制される
クライアントが Windows メッセージの処理を続行する必要があるゲームに取り組んでいます。そうしないと、ゲームが悪用される可能性があります。ウィンドウのサイズ変更とドラッグ イベント中のこの問題を解決するためにWM_TIMER
、メイン イベント ループを再開する 50 ミリ秒ごとに発生するメッセージがあります。
問題は、ユーザーがウィンドウ化されたクライアントの X ボタンまたは最小化ボタンをクリックしたままにしておくと、この手法が機能しないことです。(そのため、クリックは完了せず、クライアントを停止するだけです。)
Spy++ を使用すると、最後に表示されるメッセージは次のとおりです。
その後、マウスを動かすまで何もWM_TIMER
表示されず、マウス ボタンを離すまでメッセージは表示されません。
問題は、マウスをウィンドウの X ボタンの上に置いた状態で、クライアントを再び動かすためにキーオフできるものはありますか? WM_TIMER
または、「ウォッチドッグ」メッセージが発火するようにできることはありますか?
user-interface - Application.DoEvents は別のスレッドにメッセージを送信していますか?
私は一般的にイベント ループ (あまりうまくいかない) を理解しようとしてきましたが、Windows メッセージング ループはシングル スレッドであることを読みました。もしそうなら、Application.DoEvents はどのように機能しますか? イベント ループは一度に 1 つのメッセージを処理し、各メッセージ/イベントの処理中にブロックしませんか? Application.DoEvents を可能にするには、メッセージを処理しているスレッドとは別のスレッドにメッセージ イベント ループが存在する必要があるのではないでしょうか。別々のスレッドがある場合、「メイン」スレッドと呼んでいるのはどれですか? 非常に単純なものが欠けていると確信しています。それが何であるかわかりません。
winapi - WindowsMobile6のWM_ACTIVATEAPP
WM_ACTIVATEAPP
「デスクトップWindows」にメッセージがあります:
アクティブなウィンドウとは異なるアプリケーションに属するウィンドウがアクティブ化されようとしているときに送信されます。メッセージは、ウィンドウがアクティブ化されているアプリケーションとウィンドウが非アクティブ化されているアプリケーションに送信されます。
Windows Mobileに似たようなものはありますか?WM_ACTIVATE
私のアプリケーションには複数のウィンドウがあるため、使用できません。
WM_ACTIVATEAPP
アプリがアクティブ化/非アクティブ化されたときに、電力を消費するリソース(GPS、バックライトなど)を要求/解放したいので、必要です(または同様のもの)。
windows - Windows アプリケーションのメッセージ キューにメッセージがない場合、メッセージ ループは継続的に実行されますか?
Windows メッセージ キューとメッセージ ループについて疑問があります。誰かが私を理解するのを手伝ってくれますか、またはいくつかの参照リンクを提供してください。
Windows アプリケーションのメッセージ キューにメッセージがない場合、メッセージ ループは継続的に実行されますか?
実行した場合、アプリケーションはハングしますか? ループが継続的に発生しているので?それはどのように機能しますか?
ありがとう、はら
c# - WM Windows メッセージ コードに関する情報はどこにありますか?
あちこちで、プロのユーザーが私のような多くの初心者の質問にWM_PAINT = 0xf
、このコードの完全なリストを取得するには何を検索すればよいですか?などの質問に答えています。Windowsのすべてのバージョンですべて同じですか?他のプラットフォームにも使用できますか?