強制終了について


miyo  URL  2004-03-17 22:14:40  No: 112417

はじめまして、よろしくお願いします。
作成したプログラムが、強制終了によって、終了されないようにするためには、
どうすれば良いのでしょうか。

具体的には、[Alt]+[Ctrl]+[Del]を、動作させないようにしたいのですが。
元々、そんなことが可能なのかを調べてみたところ、下のURLのソフトウェアは、
それを可能にしているみたいです。 http://www5f.biglobe.ne.jp/~ikemura/aboutkagi.htm
Win2000環境では、[Alt]+[Ctrl]+[Del]を押した際に表示される
「Windows のセキュリティー」ダイアログの「タスクマネージャ」の
ボタンが無効になっていました。

同じことをするには、どうすればよいでしょうか。
どうぞ、よろしくお願いします。


いな  2004-03-17 23:36:42  No: 112418

これはVBではなくVCで作れれていませんか?


nanashi  2004-03-17 23:43:45  No: 112419

> 具体的には、[Alt]+[Ctrl]+[Del]を、動作させないようにしたいのですが。

キーボードをグローバルフックする必要があります。
グローバルフックはDLLが無いと出来ません。
なのでVBだけでは作れません。


Say  2004-03-18 06:07:47  No: 112420

残念ながら、Win2000の場合、
グローバルフックではできません。
GINAを書き換える必要があり、お奨めできません。


miyo  URL  2004-03-19 05:18:52  No: 112421

いなさん、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  のようなイメージ)


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

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






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