はじめまして、よろしくお願いします。
作成したプログラムが、強制終了によって、終了されないようにするためには、
どうすれば良いのでしょうか。
具体的には、[Alt]+[Ctrl]+[Del]を、動作させないようにしたいのですが。
元々、そんなことが可能なのかを調べてみたところ、下のURLのソフトウェアは、
それを可能にしているみたいです。 http://www5f.biglobe.ne.jp/~ikemura/aboutkagi.htm
Win2000環境では、[Alt]+[Ctrl]+[Del]を押した際に表示される
「Windows のセキュリティー」ダイアログの「タスクマネージャ」の
ボタンが無効になっていました。
同じことをするには、どうすればよいでしょうか。
どうぞ、よろしくお願いします。
これはVBではなくVCで作れれていませんか?
編集 削除> 具体的には、[Alt]+[Ctrl]+[Del]を、動作させないようにしたいのですが。
キーボードをグローバルフックする必要があります。
グローバルフックはDLLが無いと出来ません。
なのでVBだけでは作れません。
残念ながら、Win2000の場合、
グローバルフックではできません。
GINAを書き換える必要があり、お奨めできません。
いなさん、nanashiさん、Sayさん。
ご返答ありがとうございました。
> 具体的には、[Alt]+[Ctrl]+[Del]を、動作させないようにしたいのですが。
上記の処理は、Win95系では次の処理で、実現することができました。
'強制終了ダイアログとウィンドウズキーの使用禁止。
Declare Function SystemParametersInfo Lib "user32" Alias "SystemParametersInfoA" (ByVal uAction As Long, ByVal uParam As Long, lpvParam As Any, ByVal fuWinIni As Long) As Long
Public Const SPI_SCREENSAVERRUNNING = 97
Private Sub Command1_Click()
'強制終了ダイアログの表示を非許可。
Dim Ret As Long
Dim Ret2 As Boolean
Ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, True, Ret2, 0)
End Sub
Private Sub Command2_Click()
'強制終了ダイアログの表示を許可。
Dim Ret As Long
Dim Ret2 As Boolean
Ret = SystemParametersInfo(SPI_SCREENSAVERRUNNING, False, Ret2, 0)
End Sub
このAPIでは、スクリーンセイバーのパスワードロックの際に使用されるようです。
しかし、Win95系では、実現できたもののNT系では、この処理は無効のようで、実現できませんでした。
右記のソフトでは、( http://www5f.biglobe.ne.jp/~ikemura/aboutkagi.htm )
「Windows のセキュリティー」ダイアログの「タスクマネージャ」の
ボタンが無効になる処理※を行っているようですが、
このようにする方法をご存じでしたら、よろしくお願いします。
※「タスクマネージャ」ボタンが、非アクティブになるようです。
(Command1.Enabled = False のようなイメージ)