C言語関係掲示板

過去ログ

No.159.ALTキーを無効にする方法


No.1041

ALTキーを無効にする方法
投稿者---Ras(2002/02/08 20:44:55)


ALT+TABもCTRL+ALT+DELもATL+F4も強制終了、アプリケーション切り替えにALTは必須です。
が、今回に限っては強制終了もアプリケーションの切り替えも出来ないようにしたいんです。たとえそれが結構危険でも。
Win32アプリケーションでやりたいのですがALTを押した場合WM_KEYDOWNに
全くメッセージが来てないらしくどこをどうしたら良いのか(泣)
スクリーンセーバーを作ろうとしててパスワードを設定してのですが
パスワードを無視してALT+F4,CTRL+ALT+DELであっさり回避されてしまうのがどうしても納得いきません(苦笑)
どなたか教えていただけると嬉しいです。

No.1044

Re:ALTキーを無効にする方法
投稿者---B.Smith(2002/02/09 14:42:24)


こんにちは。

関数RegisterHotKeyによりAlt + Tab、Alt + F4をスレッドのホットキーとして割り当ててしまうことで、この2つの機能は回避できると思います。Win9xでは試したことはありませんが、2000ではCtrl + Alt + Del以外のキーはうまくいっています。
関数UnregisterHotKeyで解除した後は、元の機能に戻ります。

No.1045

Re:ALTキーを無効にする方法
投稿者---CdS(2002/02/09 23:20:09)


ホットキーですか。
そういう方法もあるんですね。

試していませんが、Win9xでは

SystemParametersInfo(SPI_SCREENSAVERRUNNING, TRUE, NULL, 0);//無効化
SystemParametersInfo(SPI_SCREENSAVERRUNNING, FALSE, NULL, 0);//有効化

でできるそうです。
NT/2000ではホットキーを使う以外に、CTRL+ALT+DEL以外なら、低レベルでのキーフック(WH_KEYBOARD_LL)でいけます。
CTRL+ALT+DELの場合は「GINA」というキーワードで調べてみてください。(未確認)


No.1064

解決しました♪
投稿者---Ras(2002/02/17 11:53:52)


返事遅くなってすいませんでした。
B.Smithさん、CdSさん本当にありがとうございます♪
色々やってみて、最終的にB.Smithさんの方法で落ち着きました。
SystemParametersInfoですと環境によってうまくいかなかったりとマチマチみたいです(なんでだろう)
ですが、やっぱりCTRL+ALT+DELETEは解決できませんね(苦笑)
ま、まぁアプリケーションとしては残しておいた方が安全なんでしょうが、
GINAというキーワードでも探してみましたが、僕みたいな未熟者には何がかいてあるのかさっぱりで(苦笑)
どなたか暇があったら教えてくれませんか?(笑)

戻る


「初心者のためのポイント学習C言語」 Last modified:2002.03.16
Copyright(c) 2000-2002 TOMOJI All Rights Reserved