- ベストアンサー
VBプログラムを終了させないようにするには
VB2005 WindowsXPでの開発を考えています。 メニューボックスは表示せず、終了ボタンからの終了にはパスワードの入力を求めるようにします。 しかしこれだけでは、タスクマネージャ等からの強制終了ができてしまいます。 強制終了も不可能にすることは可能でしょうか? また、できるのであればプログラム起動中は、Windowsの操作(エクスプローラやスタートメニューなど)をできないようにしたいと考えています。現状ではモーダル状態のフォームを最大化して表示させようと思っていますが、他に良い方法を御存知でしたらお願い致します。
- みんなの回答 (4)
- 専門家の回答
質問者が選んだベストアンサー
- ベストアンサー
#1さんと同じですが、 (1)タスクマネージャ等からの強制終了 これは処理終了まで、絶対に止めたくないプログラムという事でしょうか?。 (2)プログラム起動中は、Windowsの操作をできないようにしたい これは、二重起動などを防ぎたいという事でしょうか? 以下(1),(2)を前提としますが、(1)については、現在の仕様で十分だと思います。逆に開発者は、タスクマネージャ等からの強制終了にまで、責任を負ってはいけないと思います。タスクマネージャは、強制終了等を行うためにある安全装置だからです。 (2)については、もっと健全な対処方法があります。Windows操作を不可能にするとは、まさにApplicationがウィルスと同じになります。操作不可能なまま、Applicationがこけたらどうします?。 基本方針としては、OSが通常レベルで許可する範囲内でOSを操作するのが、Application開発者の良心だと思います。それをやってないのがウィルスです。 なので、#1さんが仰るように、 どういった目的でそのような縛りが必要になるのか気になるところです…。 となります。
その他の回答 (3)
(1)Windowsの起動において、ユーザー/パスワードとも自動とする。 (2)ソフトはスタートアップに入れておいて、常駐扱い。 (3)ソフトに対する標準操作は、ソフト自身が自動で行うようにする。 (4)その上で、キーボード,マウスともドライバーを抜く。 ・プラグアンドプレイなので、復旧は楽。 ・故意に行われた復旧も、いちおう発見できる。 少々荒っぽいですが、この路線の応用ではだめでしょうか?。
お礼
form.closingでe.cancelをtrueにするなど試したのですが、やはりソフト的に全てを制限するのはやはり難しそうですね。 キーボード・マウスを使用させないなど、ハード的に使用制限をするしかないのかもしれません。 ありがとうございました。
タッチパネルでソフトの操作はできるようにしておき、キーボードとマウスを含めコンピュータは鍵をかけた箱に入れておけばよい。 冗談ではなく、不特定多数の利用を前提に作られるWindowsベースの案内のコンピューターなどはそのような仕様になることが多い。
補足
モニタはタッチパネル操作が可能です。 私も同様のことを提案したのですが、特殊な現場ですので、ラックなどに入れることは出来ないようです。
- NYOI
- ベストアンサー率58% (56/96)
・強制終了の不可 ・Windows操作の不可 両者ともおそらくは、不可能です。 それらが容易に実現可能なら、悪意を持った人がウィルスを量産させていることでしょう。 >現状ではモーダル状態のフォームを最大化して表示させようと思っています マウス操作は防げるかもしれませんが、ボタン操作は防げないでしょう(Alt+Tabでのアプリケーション切り替え等) というか、どういった目的でそのような縛りが必要になるのか気になるところです…。
補足
目的は、そのプログラム自体とそのプログラムのログ・データが、誤操作される、或いは、悪意がある人物に操作されることを防ぐ事(また、そういう状態である事を証明するため)です。 そのパソコンは、そのアプリケーションのためだけにあるもので、他の操作は必要としていません。 初めからシンクライアントなどを使っていれば良かったのかも知れませんが、パソコンは既に設置されてしまっており、今から変更する事は不可能となってしまっております。
補足
1、パスワードを知っている人のみがプログラムを止める事ができ、それ以外は、モニタリングのみを可能とします。 2、二重起動は元々できないようにします。Windowsを使わせないのは、不正な操作ができないシステムであることを証明するため、ということが主な理由となります。 このプログラムは、専用の1つのパソコンにのみインストールすることとなります。