
VC++(MFC)でプログラムしています。
画面キャプチャソフトをつくっています。
今現在、PreTranslateMessage(MSG* msg)関数で、WM_SYSKEYDOWNメッセージとWM_KEYDOWNメッセージを拾って、処理するようにしています。これだと、ウィンドウがアクティブな状態だとうまく処理できるのですが、ウィンドウを非アクティブにするとメッセージを拾ってくれません。
理想としてはタスクバーにプログラムを格納しただけの状態でメッセージを拾って処理をしたいのですが、どうやればいいのか方法がわかりません・・
どなたかご教授お願いします。
市販ソフトの紙copiはタスクバーに常駐するだけであとはCtrl+Shift+Gを押せばファイルを保存してくれます。そのようなことがしたいんですが・・
No.1ベストアンサー
- 回答日時:
こんにちは。
ウィンドウがディスアクティブの場合は、通常のWM_系メッセージを受け取れません。
キーコンビネーションによるイベントを受け取りたい場合は
1.Hotkeyに登録する
2.GetAsyncKeyState()を繰り返し呼び出すことで、キーを取得する
という手段が考えられます。
プログラムを設計する上でスマートなのは1でしょうか。
Hotkeyを使うなら、RegisterHotKey()というAPIがWindowsに用意されていますよ。
どうもありがとうございます。
Windowが非アクティブなとき、通常のWM_系メッセージはうけとれないんですね。勉強になりました。
その際は、Hotkeyに登録するといいんですね。色々ググッて検索していて、Hotkeyというのもでてきたんですが、関係ないだろうと無視してました・・
2のGetAsyncKeyState()というのも、せっかく教えていただいたので、色々ググッて調べてみようと思います。
早速教えてくださり、とてもうれしいです。私はMFCはまだほんのかじり始めですが、実践しようとサンプルをどんどんつくっています。おかげさまで問題が解決できそうです。このたびはどうもありがとうござました。良いご回答をいただけまして、大変うれしいです。どうもありがとうございました。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Excel(エクセル) Excelのマクロについてご教授ください 2 2023/02/25 09:43
- Windows 10 windowsでタスクバーのアイコンをクリックするだけですぐアクティブウィンドウに切り替えられるよう 1 2023/06/11 20:42
- Windows 10 Windows10のアイコンが赤くなる時の質問です 1 2022/04/27 18:42
- Visual Basic(VBA) ファイル全てを .xlsm に変更したところ、プログラムが途中で落ちてしまっています 17 2022/12/07 12:03
- Visual Basic(VBA) vba Sleep関数について教えてください 1 2023/01/18 10:18
- Windows 10 (緊急)windowsのタスクバーやアプリ?が反応しない 3 2023/03/28 05:03
- ドライブ・ストレージ Win10を再インストールしたら、HDDの一部に未割り当て領域ができ何の操作もできません。 4 2023/05/19 05:31
- Visual Basic(VBA) VBAが止まります。 2 2022/09/02 14:02
- その他(動画サービス) アマゾンプライムビデオが見れなくなりました、対処方法教えてください。 2 2022/09/10 20:48
- Windows 10 タスクバー上に表示されたアドレス・ボックス? 1 2023/04/30 17:37
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
SetWindowText関数について
-
VBでRegisterWindowMessage関数...
-
メッセージボックスの選択ボタ...
-
VBAでコントロールのハンドルを...
-
WM_CLEARなど使えないメッセー...
-
16進数入力制限方法
-
点滅で知らせる方法
-
マウスの左クリックの内容を知...
-
Sendkeysのタイミング
-
windowsメールスロットについて...
-
CloseHandle()
-
デスクトップ上のアイコンの位...
-
グラフの交点の求め方(Excel)
-
エクセルで作った新しいウイン...
-
コントロールの書式設定で、“コ...
-
コンボボックス内の文字サイズ変更
-
「アイテムは収集されました」...
-
エクセルのコントロールツール...
-
ラジオボタンの初期指定
-
Minecraft 統合版(PC)の描画距...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
vbaから他のアプリを終了
-
msgboxの表示位置
-
メッセージボックスの選択ボタ...
-
SetWindowText関数について
-
他のウィンドウのボタンを自動...
-
VB.netでFindWindowExやると・...
-
デスクトップ上のアイコンの位...
-
メッセージハンドラ
-
VBAでコントロールのハンドルを...
-
システム例外のメッセージを変...
-
VBでRegisterWindowMessage関数...
-
VC++(MFC)でタスクバーに常駐し...
-
VBA 複数セルが空白なら印刷さ...
-
16進数入力制限方法
-
グローバルフック(SetWindowsH...
-
マウスホイールをフックしたい
-
WM_NCLBUTTONUPについて
-
キーボード入力をHSPでさせたい...
-
点滅で知らせる方法
-
チェックボックスのキーダウン...
おすすめ情報