• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:VC++(MFC)でタスクバーに常駐してる状態でメッセージを受け取りたい)

VC++(MFC)でタスクバーに常駐してる状態でメッセージを受け取りたい

このQ&Aのポイント
  • VC++(MFC)で画面キャプチャソフトを開発しています。タスクバーに常駐し、メッセージを受け取りたい場合、PreTranslateMessage(MSG* msg)関数を使用してWM_SYSKEYDOWNメッセージとWM_KEYDOWNメッセージを処理することができます。
  • ただし、ウィンドウが非アクティブな状態ではメッセージを拾えないため、タスクバーにプログラムを格納した状態でメッセージを受け取りたい場合は別の方法が必要です。
  • 市販ソフトの紙copiのように、タスクバーに常駐し、特定のキー操作でファイルを保存する機能を実現したい場合は、特殊なキーボードフックやウィンドウメッセージフックを使用することが考えられます。具体的な方法については、専門知識が必要なため、技術的なサポートを受けることをおすすめします。

質問者が選んだベストアンサー

  • ベストアンサー
  • MoguraSE
  • ベストアンサー率64% (81/126)
回答No.1

こんにちは。 ウィンドウがディスアクティブの場合は、通常のWM_系メッセージを受け取れません。 キーコンビネーションによるイベントを受け取りたい場合は 1.Hotkeyに登録する 2.GetAsyncKeyState()を繰り返し呼び出すことで、キーを取得する という手段が考えられます。 プログラムを設計する上でスマートなのは1でしょうか。 Hotkeyを使うなら、RegisterHotKey()というAPIがWindowsに用意されていますよ。

kamkamkam3
質問者

お礼

どうもありがとうございます。 Windowが非アクティブなとき、通常のWM_系メッセージはうけとれないんですね。勉強になりました。 その際は、Hotkeyに登録するといいんですね。色々ググッて検索していて、Hotkeyというのもでてきたんですが、関係ないだろうと無視してました・・ 2のGetAsyncKeyState()というのも、せっかく教えていただいたので、色々ググッて調べてみようと思います。 早速教えてくださり、とてもうれしいです。私はMFCはまだほんのかじり始めですが、実践しようとサンプルをどんどんつくっています。おかげさまで問題が解決できそうです。このたびはどうもありがとうござました。良いご回答をいただけまして、大変うれしいです。どうもありがとうございました。

すると、全ての回答が全文表示されます。

関連するQ&A