アプリ版:「スタンプのみでお礼する」機能のリリースについて

Access2007について質問します。
フォームに表示された情報をコピー禁止にしたいというのが目的です。
[CTRL]+[C]の禁止、右クリックメニューのコピーを禁止する
ということが具体的な方策となると思います。

[CTRL]+[C]の禁止は、起動時の処理で禁止にできます。
右クリックメニュー(ショートカットメニュー)も既定のものではなく、カスタムにすれば可能なのですが、既定メニューにあるフィルター等のコピー以外のメニューは既定のままにしておきたいのです。

それで質問となりますが、
既定の右クリックメニューで、コピーだけを外す(使用不可にする)ことが可能なのでしょうか?可能であるならばそのやり方を。
または、
カスタムメニューの作成で、既定メニューのようなものを作成することが可能なのか?フィルターも数値、テキストとフィールド定義に基づいて自動的に判断し表示されているようです。

以上です。よろしくお願いします。

A 回答 (3件)

Access2007は持ち合わせておりませんので、別のアプローチを


http://www.loadsystem.net/api/lsapi15.txt
こちらを利用して、マウスボタンクリック時とキークリック時イベントに
ClearClipBord_Data としてはどうでしょう?
フォームのプロパティの『キーボードイベント取得』は、はいにしておいて。
ユーザーが何かする度に空にしてしまう・・(^^ゞ

Sub ClearClipBord_Data()
  If OpenClipboard(0) Then
    EmptyClipboard
    CloseClipboard
  End If
End Sub

※APIに関して私は全くの門外漢ですので、質問には答えられませぬ。
Win XP & Access2002 にて検証。

この回答への補足

nicotinismさん。
もしおわかりになればと思いましてお尋ねいたします。
標準モジュールに、教えていただいたサブモジュールを設定したのですが、
OpenClipboard
EmptyClipboard
CloseClipboard
がいずれも「定義されていません」とエラーになってしまいます。
リンクされていた場所にあった、以下の記述をとってきて
Declare Function OpenClipboard Lib "User32" (ByVal hWnd As Long) As Long
Declare Function CloseClipboard Lib "User32" () As Long
Declare Function EmptyClipboard Lib "User32" () As Long

を別途定義したのですが、OpneClipboardはそれで通ったのですが、EmptyClipboard、CloseClipboardはやはり定義されていないとでてしまいます。

この辺の知識が未熟で、不勉強なためよくわかっておらず、ネットで検索してもいまひとつわかりません。

何かアドバイスがありましたらお願いします。(こういうことを勉強しなさいみたいなことでもかまいません)

補足日時:2011/05/19 10:00
    • good
    • 0
この回答へのお礼

nicotinismさん。
ありがとうございます。
以前、プリントスクリーンを防止する際に考えたことがありましたが、その時は具体的にどうやるのかわからずにあきらめてしまいました。
簡単にできるんですね。やってみますね。

お礼日時:2011/05/18 19:22

失礼しました。

コントロール上ではフォームのマウスクリック時イベントは発生しませんね・・
となると、フォームのマウスボタン移動時かな?
    • good
    • 0

こちらの環境では問題なく動きましたけど?


新規MDBの標準モジュールの内容です。
試しに、Windows XP でAccess2010のMDBとACCDBでも大丈夫でしたよ。

Option Compare Database
Option Explicit

Declare Function OpenClipboard Lib "User32" (ByVal hWnd As Long) As Long
Declare Function CloseClipboard Lib "User32" () As Long
Declare Function EmptyClipboard Lib "User32" () As Long


Sub c1()
If OpenClipboard(0) Then
Call EmptyClipboard
Call CloseClipboard
End If
End Sub

この回答への補足

nicotinismさん
ありがとうございます。
再度、行ってみたら通りました。
これにより、プリントスクリーンという大物が使用不可になり、喜んでおりますが、右クリックによるコピーがなぜか生きたまま、ということはクリップボードのデータがクリアされていない、という状況です。
マウスクリックを、クリック時、移動時、解放時の全てでプロシージャーを呼び出したのですが、クリアされないんです。

何か設定が悪いのかもしれないので、もう少し見てみます。

大変勉強になりました。
ありがとうございました。

補足日時:2011/05/19 13:39
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!

関連するカテゴリからQ&Aを探す