WindowsXPでCtrl+Alt+Delキーを無効にするには


ノース  2003-06-20 22:03:31  No: 78386

WindowsXPでCtrl+Alt+Delキーを無効にするにはどうすればいいのでしょう?
過去ログを拝見し、Win95での実装は確認できたのですが、WinXPでは動作しませんでした。
どなたか分かる方いらっしゃいましたら教えて下さい。


Say  2003-06-20 22:08:32  No: 78387

グローバルキーフックすれば可能かと思いますが、
グローバルフックでは
フックプロシージャをDLL内に置く必要があり、
DLLを作れないVBでは不可能です。


ノース  2003-06-20 22:26:37  No: 78388

Sayさん、早速のご教授ありがとうございます。
申し訳ございませんが、サンプルソース等ありましたら教えて頂けませんでしょうか?
VB初心者でして、「グローバルフック」で調べてみたのですがよくわかりません。。。
よろしくお願いします。


Say  2003-06-21 02:49:28  No: 78389

>VB初心者でして
そもそも「VBでの作成は不可能」ですから
VBの知識はあまり関係ありませんが、
Windows(SDK)とC/C++についてかなり高度な知識が必要です。
>サンプルソース等ありましたら教えて頂けませんでしょうか?
VBで不可能なのにサンプルあるわけないでしょう。

グローバルフックは作りが不完全だと
システムごとフリーズする危険行為ですし、
サンプルをちょちょこっといじってOK
というわけにはいきませんので
冷たいようですが、自分で調べてわからないようなら
手を出さないほうが無難です。

一応わかりやすい解説サイトをあげておきます。
といっても、VBではありませんが。

猫でもわかるプログラミング 
http://www.kumei.ne.jp/c_lang/
    Windows SDK編 第2部   
        第160章 メッセージフックの基礎 
        第161章 キーボード・フック 

Codian
http://www.kab-studio.com/Programing/Codian/
    DLL・フック
      ・フックの仕組み
      ・ローカルフック
      ・システムフック 

窓プログラミング
http://hp.vector.co.jp/authors/VA016117/winsdk.html
      グローバルフックを使う

ローカルフックになりますが、VBで解説したサイトをひとつ・・・。
フックの参考ぐらいにはなるでしょう。

M.Oshikiriのホームページ
http://www.geocities.co.jp/SiliconValley/7406/
    Tips
        VBでマウスジェスチャ


岡田 之仁  2003-06-21 03:18:59  No: 78390

Win32 API の、『SetWindowsHookEx』を調べてみて下さい。

ここなんか参考になります。
http://www.tomosan.org/dev/vs/vctips01.html

以上。


Loreley  2003-06-21 19:55:17  No: 78391

VBでもグローバルフックは可能です。
ただし、すべてフックすると、VBが固まります。

WH_KEYBORADでキー状態をフックすることもできますが、
ALT+TABやCTRL+ESCAPEなどをとめることはできても、
Ctrl+Alt+Delをとめるのは、また違ったことが必要になると思います。

多分、すべてのフックの前にタスクマネージャを呼び出すための
フックが存在するんじゃないでしょうか。

海外のサイトですが、一応Alt+Tabとかを止めるサンプルがあります。
http://guille.costasol.net/API/deshabilitarAltTab.asp

これを参考にCTRL+ALT+DELもとめようとしましたが、
私は失敗しました(笑)
その分岐には入りますが、タスクマネージャはしっかりでます。


Loreley  2003-06-21 19:57:22  No: 78392

Sayさんの言うように

>グローバルフックは作りが不完全だと
>システムごとフリーズする危険行為ですし、
>サンプルをちょちょこっといじってOK
>というわけにはいきませんので
>冷たいようですが、自分で調べてわからないようなら
>手を出さないほうが無難です。

ですので、自己責任でおねがいします。

そもそも、VBでフックをするのは、
そこが非常に大きなボトルネックになりかねないので、
お勧めできません。
「へー、一応VBでもできるんだ」
程度に見てください。


Say  2003-06-21 21:12:25  No: 78393

参考までに
Ctrl+Alt+Delの処理は普通msgina.dllが担当してますので、
これを自作ginaにすげかえて無効化する、という手もあります。
(くどいようですがこれもVBでは作れません。)

ただし、失敗するとWindowsを再インストールすることになります。
グローバルフックより凶悪かも・・・。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加