問題タブ [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.
.net - これらのIPC技術をどのように行うことができますか?
Cとwin32を使用していた当時、私は多くのIPC技術を持っていたのを覚えています。これまでのところ、.NETでそれらのいずれにも遭遇したり、Cの外部でそれらを見たりしたことがないので、これらのプロセス間通信技術をどのように行うことができるかを尋ねると思いました。
共有/グローバルメモリ。信号なしで別のプロセスによって変更できるRAMを割り当てるだけです。
ウィンドウメッセージ。SendMessageとWM_USER+Nを使用したことを覚えています。共有メモリに触れたときに別のアプリに伝え、ファイルや設定を変更するように依頼し、ときどき怠惰な気分になるため、キーストロークを入力してマクロとして機能するように他のアプリに伝えました。
動的データ交換。私は試しましたが、これを機能させることはできませんでした。私が覚えていることから(これは完全に間違っている可能性があることを警告します)、あなたは自分自身をグローバルメッセージまたはイベントに登録し、別のアプリ(通常はあなたのもの)がメッセージを送信し、2つほどのアプリが互いに通信し、メッセージを投稿し、統合することができますこのように2つのアプリ間。何がこれに取って代わったのか知りたいです。
私が知っている名前付きパイプもまだ使用され、見られています。そして、私は人々がIPCにソケットを推奨していることを覚えていますが、私はそれをするのが好きではありませんでした。
他に何が欠けていて、何がこのテクニックに取って代わりましたか?かっこいいグローバルミューテックスがあることは知っています。私はまだ2つのアプリ間でメッセージを送信するための最新の方法を探しています(ポイント2)。パイプにないFIFOキューがあるのではないかといつも思っていました。毎回メッセージを送信してグローバルメモリを割り当てる代わりに、データ(1kなど)をプッシュできることを除いて、Windowsメッセージと同様です。
-編集-バンプ。このスレッドは、現時点ではまだ私に関連しています。
.net - 「クラッシュしました。ごめんなさい...」というポップアップが表示されたら、アプリケーションを完全に停止します。
アプリケーションがクラッシュした場合、クラッシュをインターセプトします(関数SetUnhandledExceptionFilterを使用)。クラッシュハンドラーで、ミニダンプファイルを作成し、アプリケーションがクラッシュしたことをユーザーに通知します。この通知は、フラグMB_TASKMODALのMessageBoxを介して行われるため、アプリケーションの残りの部分はブロックされます。
残念ながら、それは再描画メッセージとタイマーメッセージの処理をブロックしません。特にタイマーメッセージは、あらゆる種類の中間アクション(アプリケーションにロードされているプラグインによって異なります)を実行したり、バックアップファイルに保存したりする可能性があるため、非常に煩わしいものです。
Windowsが再ペイントメッセージとタイマーメッセージを送信しないようにする簡単な方法はありますか(「クラッシュしました」ポップアップを表示している間)?
別の方法は、クラッシュハンドラーで設定され、ロジックを実行するアプリケーションのすべての場所でチェックされるグローバル変数を使用することですが、これは私にはかなり「汚い」柔軟性のないソリューションのようです。もっと簡単な方法はありませんか?(そして、メッセージボックスのメッセージループがメッセージボックスメッセージのみを処理し、他のウィンドウのメッセージを処理しないことを確認するだけです)。
サンクスパトリック
c++ - Windows7 でセキュリティ画面 (Ctrl+Alt+Del) から戻るときに WM_PAINT メッセージを受信しない
セキュリティ画面の終了を検出する必要があります。これは、ユーザーがウィンドウで Ctrl+Alt+Del を押したときに表示される全画面です。Xp では、この画面を閉じたときにアプリケーションが wm_paint メッセージを受け取りますが、Windows 7 では、メッセージが常に受信されるとは限らず、おそらく 25% の時間しか受信されません。
代わりに WM_WTSSESSION_CHANGE メッセージをキャッチしようとしましたが、ユーザーがログアウトしてアカウントに再度ログインした場合にのみ、このメッセージを受け取ります。
これまでのところ XP と 7 でしかテストしていないため、Vista での動作については不明です。
hook - アプリケーションの起動時にフックできる Windows メッセージはありますか?
アプリケーションが起動するたびに知りたいです。それがいつ起こるかを正確に知るためにフックを設定できるWindowsメッセージはありますか?
c# - キープレスを DirectX アプリケーションに送信する方法は?
1
Windows XPまたはWindows 7の特定のプロセスに10秒ごとに押すことをエミュレートするプログラミング言語(できればDelphi 7 / Delphi 10 / C#)でプログラムを作成する必要があります。試してみましたが、この特定のものでは機能しませんでした.DirectXを使用しているためだと思われます. ファイルを上書きせずにこれを行うことはできDX*.DLL
ますか? どのように?
ありがとう、
トム
編集: SendInput を使用してみました (Windows XP の Delphi 7 でhttp://www.swissdelphicenter.ch/torry/showcode.php?id=220 )、それも機能しません
c# - マルチタッチ スクリーンの通信プロトコルを学習し、そのための C# アプリケーションを作成するにはどうすればよいですか?
その上にマルチタッチオーバーレイを備えたモニターを持っています。Windows 7 では問題なく動作しますが、そのままではタッチ機能をサポートしていない Windows XP 用の C# でマルチタッチ アプリケーションを作成したいと考えています。ドキュメントはまったくなく、メーカーにメールを送信しましたが、返信がありませんでした.
ただし、このデバイスは、Windows XP でマルチタッチをネイティブにサポートしていない Google Earth で動作します。したがって、Windows 7 の WM_TOUCH、Google Earth COM API の 1 つ、そしておそらく UDP または Windows メッセージ形式の独自のメッセージなど、さまざまな種類のメッセージが一緒に生成されると思います。すべての通信をトラップしてプロトコルを学習するにはどうすればよいですか?
winapi - Spy++の実行中にEM_GETLINEが失敗する
WindowsXPで実行されているアプリケーションの一部のダイアログに編集ボックスがあります。このコントロールでEM_GETLINEを発行すると、その内容が返され、問題はありませんが、Spy ++を起動すると、コントロールが突然正しく動作しなくなり、常に空の文字列が返されます。何が問題になるのでしょうか?
winapi - 外部アプリケーションによって使用される Windows メッセージを監視するためのツール
外部アプリケーションによって起動された Windows メッセージをリアルタイムで監視するためのツールを探しています。
少し前にwinsight32(Delphiに同梱されているツール)を使用しましたが、メモリが非常に高価でラップトップがフリーズしました。
(ソース: blong.com )
java - 別のアプリケーションのツリー ビューの内容を盗む
Java で非常に大きな TreeView コントロールを持つアプリケーションがあります。ツリー コントロールの内容を、葉のみの XPath のような要素のリスト (JList ではなく文字列のみ) で取得したいと考えています。これがルートの例です
出力します:
ソースコードやそのような便利なものはありません。ウィンドウ項目自体を掘り下げてこのデータを引き出すために使用できるツールはありますか? 手で入力することが私の唯一の他のオプションであるため、いくつかの後処理手順があってもかまいません。
c++ - 異なる RegisterWindowMessage() の名前が同じに見える
C/C++ Windows API RegisterWindowMessage()の使用
アプリケーションの名前をメッセージ名として使用しています。
次に、同じ名前を使用してCreatMutex()を呼び出し、それが既に存在するかどうかを確認できるようにします。もしそうなら、私はこのアプリケーションがすでに実行されていることを知っており、その 2 番目のインスタンスを起動しません。これは私の関数 Running() の操作です
私の混乱はメッセージ名にあります。「AutoConvert.exe」と「AutoAppend.exe」が同じ名前として解釈されるようです。なんで?
追加:私は自分のマシンではありませんが、これは、アプリが現在実行されているかどうかを確認するために両方のアプリで呼び出される関数のようなものです
戻ってきたら、あなたが良い点を指摘しているので、さらにテストを行う必要があります。