PrintScreenを無効にするには?

解決


killy  2003-04-28 09:17:20  No: 106947  IP: [192.*.*.*]

画面をコピーされないためFormに
If KeyCode = vbKeyPrint Then
   msg = MsgBox("コピーは禁止!", 16, "警告")
End If
という記述をしたのですが、PrintScreenを無効にすることが
出来ませんでした。KeyCodeに他のキーを指定すると作動するのですが、
PrintScreenだけはうまくいきません。何か別の方法があるのでしょうか?

編集 削除
killy  2003-05-08 16:02:20  No: 106948  IP: [192.*.*.*]

さらにAPIを使って

If GetAsyncKeyState(vbKeyPrint) <> 0 Then
   Msg = MsgBox("コピーは禁止!", 16, "警告")
End If

等の記述をしてもだめでした。
作っている環境は
Win98・VB6.0SP5です。よろしくお願いします。

編集 削除
nanashi  2003-05-08 16:05:03  No: 106949  IP: [192.*.*.*]

システム(?)をフックしないとダメなんじゃなかったっけ?

編集 削除
killy  2003-05-08 16:38:19  No: 106950  IP: [192.*.*.*]

少し調べてみたところ、VBではシステムをフックするのは難しいという記述を見ました。
具体的にどのようにするかご存じですか?

編集 削除
nanashi  2003-05-08 17:02:51  No: 106951  IP: [192.*.*.*]

私は今までフックという言葉が出てくるたびに逃げてきたんで(^^;
まー私の場合、無理にフックする必要も無かったので良かったんですが。

どなたかフォローお願いします。

編集 削除
たかみちえ  URL  2003-05-08 17:53:37  No: 106952  IP: [192.*.*.*]

システムフックはDLLにしないといけません。
なので、VBだけでは無理です。
  詳しくはわたしも知らないので、フック関連のサイトを見回ってみてくださいとしかいえませんけど…。
  C言語(またはDelphi言語)を、ある程度以上知らないと、難しそうですね。
メインでVBを使うにしろ、DLLはCかDelphiで作らなければいけません。

編集 削除
Say  2003-05-09 10:43:00  No: 106953  IP: [192.*.*.*]

システムフックに関しては、
とりあえずYahooあたりで「グローバルフック」で
検索してみては?

ただし、ヒットしたページの解説を読んで
自力で理解できないようなら
手を出さないほうが無難です。

チェーンしそこなうと、まるごと固まるし。

編集 削除
killy  2003-05-09 13:10:00  No: 106954  IP: [192.*.*.*]

みなさんありがとうございます。
調べてみて、手に負えないようならあきらめます(笑)

編集 削除