問題タブ [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.
web-services - Webサービス呼び出しから自動インスタンス化されたDelphiオブジェクトを解放する必要がありますか?
初心者の質問:フォームアプリケーションがあります。Webサービス呼び出しを行い、呼び出しの結果をメインフォームに投稿する別のスレッドがあります。
私のスレッドでは、(TTimerを使用して)X秒が経過した後、次のように呼び出します。
関数Remote.Run.GetSystemProbeValuesには、次のプロトタイプがあります。
また、TCWProbeValuesは、TCWProbeValueオブジェクトの動的配列です(これらはすべてTRemotableから派生しています)。
私のメインフォームでは、メッセージを問題なく受信し、LParamをTCWProbeValuesにキャストし直します。
私の質問は、動的配列とそのオブジェクトがDelphi HTTORIOシステムによって作成されたとすると、それらを解放する責任があるのでしょうか。Delphiは、OnTimer関数が戻った後、メモリが再利用可能であると見なしましたか?(そして、その場合、私のメインフォームメッセージハンドラーが実際にメッセージのLParamによって参照されるメモリを読み取ることができるという純粋な幸運ですか?)むしろ、HTTPRIO要求によって自動インスタンス化されたオブジェクトを解放するのは私の責任ですか?
上記に詳細/コードが必要な場合は、大声で叫んでください。追加します。
乾杯、ダンカン
c# - C# サービスと別の VB 6 アプリケーションの間で構造体 (またはクラス) メッセージをやり取りするにはどうすればよいですか?
Windows Messaging の使用を考慮して、ac# サービスと実行中の vb 6 アプリケーションの間でデータを渡す必要があります。C# サービスと実行中の vb 6 アプリケーションの間でデータをやり取りするにはどうすればよいですか? 私がやり取りしているデータの短縮サンプルは以下のとおりです。
winforms - ラップされたコントロールがキャプチャを設定したときにマウス イベントを受け取るにはどうすればよいですか?
修飾キー (Shift または Control) を押した状態でクリックすると、WndProc にマウスアップ通知が表示されません。修飾キーなしでそれらが表示され、修飾キーでマウスダウン通知が表示されます。
作成していないコンポーネントでユーザー アクションを追跡しようとしているので、Windows フォームの NativeWindow ラッパー (コンポーネントをラップ) を使用して、WndProc() メソッドから Windows メッセージを取得しています。
受け取った通知を追跡しようとしましたが、表示される唯一の手がかりは WM_CAPTURECHANGED です。WM_LBUTTONDOWN メッセージを受信したときに SetCapture を呼び出してみましたが、役に立ちません。
修飾子なし (ペイント、タイマー、および NCHITTEST メッセージをスキップ):
修飾子あり (ペイント、タイマー、および NCHITTEST メッセージをスキップ):
マウス ボタンを長押しすると、通常は WM_LBUTTONUP 通知を受け取ることができますが、応答性を高めることができるはずです..
編集:マウスボタンを離す前に、目的のコンポーネントの外側でコントロールクリックしてカーソルをそこに移動しようとしましたが、WM_LBUTTONUP通知が表示されるため、マウスダウン時にコンポーネントがマウスをキャプチャしているように見えます. 別のウィンドウがマウスをキャプチャしたときにその通知を受け取る方法はありますか?
ありがとう。
delphi - Delphiでの他のWindowsメッセージのWindowsメッセージへのアクセスと継承
WMSysCommand メッセージを使用して、キャプション バー ボタン (最大化/最小化) の動作と WMNCHitTest を使用するために必要な最近の更新を変更していますが、コードが長いため、これら 2 つの関連メッセージを複数の手順で分割したくありません。
他のメッセージからプライベート宣言 (メッセージ) にアクセスできますか? もし私ができるなら - どうやってそれをするのですか?
スー...私は正しく考えており、正しいコマンドをまったく知らないのか、それとも完全に強気な考えを持っているのでしょうか?
よろしく。助けてくれてありがとう...
winapi - Win32 でダブル右クリックのようなものはありますか?
ダブル右クリックの Windows メッセージについて言及しているものは見つかりませんでしたが、ダブル右クリックで発生するイベントを誰かが知っているかどうか知りたいです。
何か案は?
windows - Windowsメッセージで動的に割り当てられたデータのライフサイクルを処理するにはどうすればよいですか?
簡単なタスク:動的に割り当てられたデータ(任意の長さの文字列など)を含むWindowsメッセージを送信します。このデータを解放する責任をどのように管理しますか?
Windowsメッセージの受信者は、このデータを解放する責任がある可能性があります。しかし:すべてのメッセージが実際に受信され、リンクされたデータが解放されることをどのように保証できますか?受信者がシャットダウンしている状況を想像してみてください。そうすれば、受信者はメッセージキューを処理しなくなります。ただし、メッセージキューは(しばらくの間)まだ存在しており、メッセージを受け入れることができます。メッセージはこれ以上処理されません。
ありがとう!
delphi - 別のプロセスで SendMessage(..) を使用してデータレコードを送信する方法
私は2つの別々のプロセスでデータを送信していましたが、失敗しました。同じプロセスの下でのみ機能します...これがコンセプトです。
//------------------------------------------------ -----------------------------------
メインアプリ
//------------ -------------------------------------------------- ----------------------
//------------------------------------------------ -----------------------------------
サブアプリ
//------------ -------------------------------------------------- ----------------------
:OnCaptureMessage
delphi - Windows シャットダウンの防止
コンピューターのシャットダウンを検出して防止するために、私は非常に単純なプログラムを使用しています。以下のように、1 つのフォームと 1 つのプライベート プロシージャしかありません。
そして実装
Delphi 5 と Delphi 2010 でコンパイルしました。どちらもシャットダウンを検出します。しかし、Delphi 2010 でコンパイルすると、シャットダウンを防止した後、プログラムが閉じます。(PCはシャットダウンしません)
両方から同じ結果を得るにはどうすればよいですか?
c# - C#-特定のアプリケーションからのWindowsメッセージのキャプチャ
別のアプリケーションが送信しているウィンドウメッセージをインターセプトする必要があるC#アプリケーションを作成しています。私が監視しているアプリケーションを作成した会社からサンプルコードが送られてきましたが、それはC++であり、私にはよくわかりません。
C ++のサンプルコードでは、次のコードを使用しています。
私が理解しているように、これは、リッスンしたい特定のメッセージのIDをWindowsから取得します。次に、IDに一致するメッセージが傍受されるたびにOnShockStatusMessageを呼び出すようにC++に要求しています。
少し調べた後、C#で次のようにまとめました。
私が理解しているように、これは同じ基本的なことを行う必要があります。
- 監視したいアプリケーションを見つけます
- 傍受したいウィンドウメッセージを登録します
- すべてのウィンドウメッセージを監視します-次に、必要なメッセージを取り除きます
ただし、WndProc()メソッドのオーバーライドでは、どちらのチェックも、監視しているアプリケーションからの特定のメッセージやメッセージをインターセプトしません。
通過するすべてのメッセージに対してDebug.WriteLineを実行すると、それらを監視していることがわかります。ただし、必要なメッセージが除外されることはありません。
C ++で記述されたサンプルの監視アプリケーションを実行すると、ウィンドウメッセージが送信され、取得されていることがわかります。これは、C#の実装が同じことを行わないだけです。
c++ - ウィンドウを他のウィンドウに貼り付ける
他のウィンドウに張り付くWindowsプログラムを開発したいです。
これを行うための最速の方法を探しています。WinAPI
ターゲットウィンドウに関するすべての情報を取得して、ウィンドウを適切な場所に移動し、その後、ターゲットウィンドウのWindowsメッセージをスニッフィングして、ウィンドウのサイズ変更または移動を検索し、その後、ウィンドウを再度移動します。しかし、私は最も簡単で良い作業方法が何であるかわかりません(おそらくいくらか.NET
ですか?しかし、私は無料のフレームワークが好きなので、答えは好みません.NET
)。
ターゲットウィンドウの上、下、左、右に貼り付けたいのですが、これは気にしないでください。
誰でもこの問題で私を助けることができますか? ありがとう。