ショートカットキーを無効化するには?

解決


晴海  2003-04-07 19:47:15  No: 77613  IP: [192.*.*.*]

API関数を使って、「ctrl+C(コピー)」といったショートカットキーを
無効化することって出来るんですか?

編集 削除
魔界の仮面弁士  2003-04-07 22:18:22  No: 77614  IP: [192.*.*.*]

Ctrl + Cであれば、対象のウィンドウをサブクラス化して、
WM_COPYメッセージを握りつぶせば良いかと思います。

# ただしこの方法の場合、「Ctrl + C」だけではなく、
# 「Ctrl + Insert」やマウス右クリックメニューからの
# コピーなども、処理されなくなってしまいますけれどね。。。

編集 削除
晴海  2003-04-07 23:13:50  No: 77615  IP: [192.*.*.*]

データのコピーによる流出を防ぎたかったので、
魔界の仮面弁士さんのご教授は私の意図に合致しており、
大変参考になりました。
どうもありがとうございます。

自分でも色々と調べてみて概略はおおよそ解ったような気もするんですが、
実際にはどんなコードを書けば良いんでしょうか?

編集 削除
魔界の仮面弁士  2003-04-08 01:31:59  No: 77616  IP: [192.*.*.*]

googleにて、『WM_COPY サブクラス』というキーワードで検索してみたところ、
以下のページがヒットしました。「3. サブクラス化を使う」というトピックです。
http://homepage1.nifty.com/rucio/main/technique/ShareEvent.htm

上記ページ中に書かれている、
   Select Case uMsg
    Case WM_PASTE
      '貼り付けが行われたときの処理
   End Select
というコードの部分を
   Select Case uMsg
    Case WM_COPY
       Exit Function
   End Select
のように修正すればOKです。

つまり、WM_COPYメッセージが送られてきても、何もせずに
コールバックプロシージャを終了させてしまうわけですね。

編集 削除
晴海  2003-04-08 21:59:06  No: 77617  IP: [192.*.*.*]

魔界の仮面弁士さん、
親切にお答えくださってどうもありがとうございましたm(_ _)m

編集 削除