強制終了を防止するには?


ROB  2003-09-05 01:36:08  No: 79294

セキュリティーソフトを作っているのですが
(パスワードを入力しないとその他の操作ができない)
強制終了を防止するにはどうすればいいでしょうか?
キー操作を無効にしようと思い調べたのですができないようなので、
なにか良い案をいただけるとうれしいです。


筆ペン  2003-09-05 19:23:20  No: 79295

開発環境等が見えないので、
VB6.0かVB.NETかってとこぐらいははっきりさせましょう。

強制終了とは右上の×ボタンクリックと考えていいのでしょうか?
VB6.0やVB.NET、ウィンドウズフォーム等では消してしまったり
unloadイベント等にメッセージでも表示させて
確認をとって終了させるように記述すればいいのでしょうが
ただ文面からむりくり解釈すると
Webフォームにも聞こえるので
その場合は無理なのかなぁ。よく知りません
一応unloadイベントやデストラクタはありますが・・・

ちなみに右上の×ボタン押下や
まぁ考えないですがタスクマネージャからの強制終了
Alt+F4等の終了は
ユーザーの意思によって押されるものなので
そこは設計側からすれば対象外として
捕らえる事が多いように思います。

意味ちがうかな?
もう少し詳しく書けば誰か詳しい人がお教えくださるでしょう

ちなみにコンセントを抜く電源を切るという
強制終了方法の対策はもうお手上げ


ROB  2003-09-05 20:02:41  No: 79296

「Ctrl+Alt+Del」や「Alt+F4」によって強制終了されたくないので
すが、キーを無効にできないようなので何かいい案を教えてくれると
うれしいです。


とろ  2003-09-05 20:38:30  No: 79297

QueryUnload イベントで
UnloadMode の値を見て、
Cancel を True に設定すれば良いのでは?

ただ、 Ctrl+Alt+Del の時も終了させないようにする
っていうのは、ちょっと問題があるかと思います。


nanashi  2003-09-05 20:47:31  No: 79298

Form_QueryUnloadでCancelをTrueにすれば、×ボタン、メニュー、Alt + F4での終了は避けられます。
これらは強制終了ではなく通常の終了手続きだからです。

しかし、『Ctrl + Alt + Del』による強制終了は避けられないと思います。
サブクラス化してWM_DESTROYを潰せば出来るのかもしれないけど、やったことがないので分かりません。


筆ペン  2003-09-05 20:47:40  No: 79299

キーダウンイベントでは取れないでしょうか?

Private Sub Form_KeyDown(keycode As Integer, shift As Integer)のような

VB6か.NETか不明ですが、どちらにもあるイベントですので。
shift As Integerというところの
ビット 2 が Alt キーの状態を表しますので
(Altおしっぱなしという意味です)
vbKeyF4との組み合わせで
(VB.NETの場合ならVB定数はないですね調べてください)
イベントをとる事は出来ると思いますがどうでしょうか?
3つのボタンの組み合わせも出来ると思います。
詳しくはKeydownイベントのヘルプみるのが早いですので試してみてください。

ただ、Windowsのショートカットキーとどちらが優先されるのか
なんともいえないところです。
KeyCode = 0  でキーコードをクリアして
他のイベントを引き続き呼んでやればいいのかな。
だんだん脳内でコーディングしはじめているので
参考程度にしていただければと思います


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

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






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