3

C++ でホット キー (この場合は PrtScn キー) を登録すると、元の機能が失われていることに気付きました。キーは画面の画像をキャプチャしなくなります。既存のバインディングを壊さずにホットキーを登録する方法はありますか?

問題のコンテキスト: テスト チームがスクリーンショットを撮るタスクを自動化するのに役立つアプリケーションを作成しようとしています。ユーザーが PrtScn / Alt+PrtScn キーをクリックすると、クリップボード上の画像を選択してドキュメントにプッシュする小さなアプリケーションを実行したいと考えています。このアプリケーションのほとんどは Java で作成されていますが、ホット キーを登録するには C++ を使用する必要がありました。

ご協力いただきありがとうございます!!

これは、ホット キーの登録に使用したコードです。

RegisterHotKey(NULL, 1, MOD_ALT | MOD_NOREPEAT, VK_SNAPSHOT);
RegisterHotKey(NULL, 2, MOD_NOREPEAT, VK_SNAPSHOT);

while (GetMessage(&msg, NULL, 0, 0) != 0)
{
    if (msg.message == WM_HOTKEY)
    {
        WinExec(" The Java Application ", SW_SHOWNORMAL);
    }
} 
4

1 に答える 1

2

OSのPrint Screen機能をプログラムでトリガーする文書化された方法はないと思います。私はあなたが試すことができるいくつかのアイデアを持っています:

  1. クリップボードへのコピー機能を自分で実装する、または
  2. ホットキーがトリガーされたら、一時的にホットキーの登録を解除し、 を使用SendInput()してキーの押下を再送信します (これは確かに少し厄介です)、または
  3. ホットキー メソッドを完全に削除し、代わりにSetClipboardViewer()etcを使用してクリップボード ビューアーを登録します。

私には、最後のアイデアが最良のように思えます。クリップボードの内容が変更されたときに通知され、クリップボードの形式が画像かどうかを簡単に確認できます。

于 2013-08-24T05:52:03.753 に答える