問題タブ [postmessage]

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 投票する
4 に答える
5636 参照

c++ - プログラムでコンボボックスを変更する

comboboxに反映されたテキストを変更するために、を新しい値で更新する必要があります。これを行う最もクリーンな方法は、comboboxが初期化された後、メッセージを表示することです。

だから私はpostmessageを含むhwndにを作成しようとしていますcombobox

それで、現在選択されているアイテムをn番目のアイテムに変更してメッセージを送信したい場合、どのpostmessageようになりますか?

関係があると思いますがON_CBN_SELCHANGE、うまく動作させることができません。

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

windows - Windows Mobile で PostMessage を使用してメニュー ピックをシミュレートする

C++/MFC で作成された Windows Mobile 5 アプリケーションの任意のメニュー項目に対して、ユーザー定義可能なキーボード ショートカットを提供するルーチンを作成しています。これを行うために、使用可能なすべてのメニュー コマンド ID を取得し、CWnd::PostMessage(WM_COMMAND,MyMenuID) を使用してそれをアプリケーションに投稿しています。私はこの手法を使用して、スレッド間通信の他の場所で効果を上げていますが、メニュー コマンド ID では使用していません。これが機能しない理由についてのアイデア。アプリはドキュメント ビューで、CMainFrame および CView の派生ウィンドウに投稿しようとしました。私はひどいスイッチステートメントを書くことができましたが、メッセージを投稿することはうまくいくはずです.

編集:わかりました、この投稿からの提案を含め、多くのことを試しましたが、役に立ちませんでした。今のところ大きないスイッチステートメントです。もっと良いものが見つかったら、もう一度更新します。

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

ui-automation - Windowsでポップアップメニュー項目をプログラムで選択する方法は?

私は小さなウィザードを書いているアプリを持っています。マウスを適切なボタンやメニューに移動してクリックすることで、アプリの小さな部分を自動化し、ユーザーが見ることができるようにしました。

これまでのところ、マウスをツリー項目に移動し、右クリックを送信しています。これにより、TrackPopupMenu を介してメニューがポップアップします。次に、マウスをポップアップ メニューの適切な項目に移動します。私が理解できないのは、メニュー項目を選択する方法です。

左クリックをメニューの所有者ウィンドウに送信しようとしたり、メニューの所有者に WM_COMMAND を送信しようとしたりしましたが、何も機能しません。

メニューはそれ自体がウィンドウだと思いますが、私が持っている HMENU から HWND を取得する方法がわかりません。

クリックをポップアップ メニューに PostMessage する方法について何か考えはありますか?

PS マウスの駆動とメッセージの投稿に別のスレッドを使用しているため、TrackPopupMenu が同期していても問題はありません。

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

delphi - PostMessageでWM_HOTKEYを送信するにはどうすればよいですか?

グローバルデスクトップHotShortCutを使用して、他のアプリケーションによってキャプチャされるようにWM_HOTKEYを送信したいと思います。

予想されるキーはCTRL+F10です

これは、WM_HOTKEYのキャプチャをトリガーするために私が見つけた唯一の方法です。

Msg.LParamLoまたはMsg.LParamHiのいずれかの値を変更した場合、WM_HOTKEYは他のアプリによってトリガーされません。ただし、この方法を使用すると、メッセージWM_HOTKEYがメソッドによってキャプチャされる前に次のようになります。

「Windows実行ダイアログ」が実行されます(ショートカット「Windowsキー」+ R)

Msg.LParamLoとMsg.LParamHiを渡す正しい方法は、ImがWM_HOTKEY + "CTRL+F10"を送信していることを確認する方法です。

0 投票する
8 に答える
9672 参照

delphi - サービス アプリケーションの PostMessage

解決できない問題があります。Delphi で 2 つのサービス アプリケーションを作成し、それらにメッセージを投稿しようとしました。もちろん、そのようなアプリケーションにはウィンドウがなく、PostMessage はメッセージを送信するためにウィンドウ ハンドル パラメータを必要とします。

そのため、AllocateHWnd(MyMethod: TWndMethod) 関数を使用してウィンドウ ハンドルを作成し、'MyMethod' パラメーターとして、メッセージを受信したときに呼び出したいプロシージャを渡しました。ウィンドウ化されたアプリケーションの場合、AllocateHWnd メソッドによって返されたハンドルを使用して呼び出された PostMessage() は、'MyMethod' プロシージャによって受信されるメッセージを確実に送信します。

ただし、私のサービス アプリケーションでは状況が異なります。理由はわかりませんが、そのうちの 1 つはこの方法でメッセージを投稿するとうまくいきますが、2 番目の投稿ではそうではありません (メッセージがまったく受信されません)。サービスが停止しているときにのみ、'MyMethod' が WM_DESTROY と WM_NCDESTROY という 2 つのメッセージを受信して​​いることに気付きます。PostMessage を使用して送信したメッセージは、この手順では受信されません。一方、最初のサービスは、私が送信したすべてのメッセージを常に受信します。

2 番目のサービスでメッセージが受信されない理由を見つける手がかりを教えてください。それらがどのように異なるかはわかりません。サービスの設定を確認しましたが、同じようです。では、(メッセージの送信に関する限り) そのうちの 1 つが正常に機能し、2 つ目が機能しないのはなぜですか?

アドバイスをありがとう。マリウス。

0 投票する
5 に答える
43465 参照

c# - SendMessage または PostMessage 呼び出しの使用方法がわかりません

サードパーティのアプリケーションでキープレスをシミュレートする必要があります。電卓アプリケーションに "8" を送信する必要がある C# アプリケーションがあるとします。.Net の SendKeys または win32 api の keybd_event を使用することはできません。どちらもウィンドウを一番上にアクティブにする必要があるためです。これは私の状況では当てはまりません。

そのため、sendMessage と postMessage の呼び出しが残ります。過去 3 時間、何らかの結果を得ようと努力してきましたが、今は完全に絶望的です。

私は次のものを持っています:

ご覧のとおり、電卓との通信を 4 回試行します。sendMessage と PostMessage の両方を使用してウィンドウを閉じ、キーを送信する 7. 何も機能しません。FindWindow メソッドが機能するため、アプリのハンドラーを取得できます (プロセスを自分で起動して、process.MainWindowHandler でアクセスしようとしましたが、うまくいきませんでした)。エラーや例外はありませんが、電卓では何もしません。

メモ帳でもまったく同じことを試しましたが、何も変わりませんでした。

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

winapi - ウィンドウメッセージキューの深さの決定

ウィンドウメッセージキューを使用して、ソケットからコンシューマーHWNDにデータを渡すアプリケーションがあります(約2100Hzのレートで)。このアプリケーションは2年以上機能しています。最近、アプリケーションでWM_TIMERが起動/実行されないという問題が発生し始めました。これは、データがメッセージキューに送られているためだと思います。

私の質問は、特定のスレッド/ HWNDのメッセージキューに保留中のメッセージがいくつあるかを判断する方法はありますか?

0 投票する
4 に答える
3259 参照

c++ - リストビューにダブルクリックを送信します(.netではなくC ++!)

リストビューにダブルクリックを送信したい。私がmsdnで読んだことから、WM_NOTIFYメッセージとNM_DBLCLKで何かを送信する必要があるようです。しかし、私はそれを実装する方法を本当によく理解していません。私は以前にSendMessageを使用したことがありますが、MSDNは構造体の入力方法などについてそれほど明確ではありません。

WM_NOTIFY http://msdn.microsoft.com/en-us/library/bb775583(VS.85).aspx NM_DBLCLK http://msdn.microsoft.com/en-us/library/bb774867(VS.85).aspx

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

java - Java(Android) での PostMessage() の代替

既存の C++ アプリケーションを書き直し、Android 環境に適応させています。

コードには PostMessage ステートメントがあります。

Android(Java)で同じ結果を達成するための最も適切な方法を知っている人はいますか?

次の方法で OnLogin() と OnClose() のような 2 つのメソッドを作成するだけで十分ですか。

そして書く

?

0 投票する
5 に答える
3446 参照

c# - 管理対象アプリのあるインスタンスから別のインスタンスにメッセージを送信するにはどうすればよいですか?

WinFormsアプリがあります。すでに実行中のインスタンスがあり、ユーザーが別のインスタンスを起動しようとした場合、Application.Run()を呼び出す前にMutexと照合して停止します。その部分はうまく機能します。私がやりたいのは、新しいプロセスを強制終了する前に、アプリの新しいインスタンスから(文字列形式のデータとともに)既存のインスタンスにメッセージを渡すことです。

PostMessageを呼び出してみましたが、実行中のアプリでメッセージを受信しましたが、lparamで渡す文字列が失敗します(はい、最初に適切な文字列を渡していることを確認しました) 。どうすればこれを行うのが最善ですか?

他の場所では、私のフォームで...