• ベストアンサー

VBプログラムを終了させないようにするには

VB2005 WindowsXPでの開発を考えています。 メニューボックスは表示せず、終了ボタンからの終了にはパスワードの入力を求めるようにします。 しかしこれだけでは、タスクマネージャ等からの強制終了ができてしまいます。 強制終了も不可能にすることは可能でしょうか? また、できるのであればプログラム起動中は、Windowsの操作(エクスプローラやスタートメニューなど)をできないようにしたいと考えています。現状ではモーダル状態のフォームを最大化して表示させようと思っていますが、他に良い方法を御存知でしたらお願い致します。

  • Cmi
  • お礼率82% (14/17)

質問者が選んだベストアンサー

  • ベストアンサー
noname#221368
noname#221368
回答No.2

 #1さんと同じですが、 (1)タスクマネージャ等からの強制終了  これは処理終了まで、絶対に止めたくないプログラムという事でしょうか?。 (2)プログラム起動中は、Windowsの操作をできないようにしたい  これは、二重起動などを防ぎたいという事でしょうか?  以下(1),(2)を前提としますが、(1)については、現在の仕様で十分だと思います。逆に開発者は、タスクマネージャ等からの強制終了にまで、責任を負ってはいけないと思います。タスクマネージャは、強制終了等を行うためにある安全装置だからです。  (2)については、もっと健全な対処方法があります。Windows操作を不可能にするとは、まさにApplicationがウィルスと同じになります。操作不可能なまま、Applicationがこけたらどうします?。  基本方針としては、OSが通常レベルで許可する範囲内でOSを操作するのが、Application開発者の良心だと思います。それをやってないのがウィルスです。  なので、#1さんが仰るように、   どういった目的でそのような縛りが必要になるのか気になるところです…。 となります。

Cmi
質問者

補足

1、パスワードを知っている人のみがプログラムを止める事ができ、それ以外は、モニタリングのみを可能とします。 2、二重起動は元々できないようにします。Windowsを使わせないのは、不正な操作ができないシステムであることを証明するため、ということが主な理由となります。 このプログラムは、専用の1つのパソコンにのみインストールすることとなります。

その他の回答 (3)

noname#221368
noname#221368
回答No.4

 (1)Windowsの起動において、ユーザー/パスワードとも自動とする。  (2)ソフトはスタートアップに入れておいて、常駐扱い。  (3)ソフトに対する標準操作は、ソフト自身が自動で行うようにする。  (4)その上で、キーボード,マウスともドライバーを抜く。   ・プラグアンドプレイなので、復旧は楽。   ・故意に行われた復旧も、いちおう発見できる。  少々荒っぽいですが、この路線の応用ではだめでしょうか?。  

Cmi
質問者

お礼

form.closingでe.cancelをtrueにするなど試したのですが、やはりソフト的に全てを制限するのはやはり難しそうですね。 キーボード・マウスを使用させないなど、ハード的に使用制限をするしかないのかもしれません。 ありがとうございました。

noname#60992
noname#60992
回答No.3

タッチパネルでソフトの操作はできるようにしておき、キーボードとマウスを含めコンピュータは鍵をかけた箱に入れておけばよい。 冗談ではなく、不特定多数の利用を前提に作られるWindowsベースの案内のコンピューターなどはそのような仕様になることが多い。

Cmi
質問者

補足

モニタはタッチパネル操作が可能です。 私も同様のことを提案したのですが、特殊な現場ですので、ラックなどに入れることは出来ないようです。

  • NYOI
  • ベストアンサー率58% (56/96)
回答No.1

・強制終了の不可 ・Windows操作の不可 両者ともおそらくは、不可能です。 それらが容易に実現可能なら、悪意を持った人がウィルスを量産させていることでしょう。 >現状ではモーダル状態のフォームを最大化して表示させようと思っています マウス操作は防げるかもしれませんが、ボタン操作は防げないでしょう(Alt+Tabでのアプリケーション切り替え等) というか、どういった目的でそのような縛りが必要になるのか気になるところです…。

Cmi
質問者

補足

目的は、そのプログラム自体とそのプログラムのログ・データが、誤操作される、或いは、悪意がある人物に操作されることを防ぐ事(また、そういう状態である事を証明するため)です。 そのパソコンは、そのアプリケーションのためだけにあるもので、他の操作は必要としていません。 初めからシンクライアントなどを使っていれば良かったのかも知れませんが、パソコンは既に設置されてしまっており、今から変更する事は不可能となってしまっております。

関連するQ&A

  • vb6.0からのタスクの終了

    VB6.0について質問です。 VBからタスクマネージャーのアプリケーションに表示されているタスクを 選んで終了させたいのですが可能ですか? (例えばいくつかアプリケーションが起動しているなかメモ帳だけを終了させたいです。) ご教授お願いします。

  • VBプログラムの終了

    VB6.0で作成した実行ファイル(exe)を終了させても タスクマネージャのプロセスに残ってしまい、 もう一度プログラムを起動することができません。 (プログラムで二重起動防止の処理をしています) このプログラムをVBのラインタイムが入っていない マシンで動かしているのですが、 やはりそれが問題なのでしょうか? それとも別に何か原因があるのでしょうか?

  • エラー)プログラムが連鎖して終了します

    こんにちは、プログラムについてお聞かせください。 WindowsXP,SP3を使っています。 重くなったり反応しなくなったりしたときに、タスクマネージャからプログラムを終了させたときです。 ひとつのプログラムを終了させたときに、他に立ち上げていた同じ種類のプログラムも連鎖して終了されます。 例えばExcelを3つ立ち上げていて、4つ目を立ち上げたときに固まり、タスクマネージャを開いて4つ目のExcelだけを消そうとしたら、他の3つのExcelも強制終了されるという感じです。 前に作業していた内容も消されてしまい、とてもやっかいです。 解決のほど、よろしくお願い致します。

  • VB 作成したプログラムを終了したのですが、何か残っています。

    こんばんわ。 VB6SP5でプログラムを作っています。 クローズボックスで終了してもVBのツールバーの「終了」ボタンが実行されている時のままになっています。 何かウインドウが残っているのかと思いますが、何か残っているか調べる方法がわかりません。残っているウインドウをdebug.print等で表示する方法はあるのでしょうか?

  • プログラム実行中に強制終了

    現在、VC++6.0でDLLを作成し、それを用いてVBで図形を描画をするプログラムを作っています。 実行中に連続して図形を描画すると強制終了になります。VBのみで図形を書いたりした場合はこのようなことは起こったことがないのでVCで作ったDLLが問題じゃないのかなと予想しています。 強制するときの状況ですが、 "0x69634e8c"の命令が"0x0000003c"のメモリを参照しました。メモリが"written"になることは出来ませんでした。 というメッセージが表示され、次に "0x5c8faed8"の命令が"0x00000564"のメモリを参照しました。メモリが"read"になることは出来ませんでした。 というメッセージが表示され強制終了されます。 またタスクマネージャで強制終了する際の様子を見ていると、PF使用量が1.2GBと異常に高い値になっていました。 どなたかこの問題に対して意見を下さいませんか?

  • windows7の強制終了もできません

    FMV-BIBLO NF/E50 windows7を使用していますが、 1時間以上前にインターネットにアクセスしようとしたらフリーズしたため、 タスクマネージャーでタスクの終了をし、 それでもタスクマネージャーの画面が閉じなかったためスタートメニューから再起動を試みました。 しかし、その後「シャットダウンしています…」の画面から動きません。 強制終了しようと起動ボタンを長押ししましたが、反応しません。 パソコンのシステムについては詳しくなく、困っています。 それでも至急やらなければならないコトが山積みなので焦ってます(ρ_;) どーしたら良いのか、どなたか教えてください、 お願いします!

  • VB5が起動しない

    VB起動時,vb5.exeアプリケーションエラーのメッセージボックスが表示され,強制終了してしまいます. どうしてでしょうか?

  • VBで内部処理のみ行って終了するプログラムを作るには?

    VB6.0でコマンドラインからの引数をテキストファイルに出力して終了させるプログラムを作りたいのですが、フォームなど特に画面に表示することなく内部で処理をしたら勝手に終了させるにはどうしたらよいのでしょうか? 初心者の間の抜けた質問で申し訳ありませんが、どなたかアドバイスをお願いします。

  • vb2005でアプリケーションを開発しています。

    vb2005でアプリケーションを開発しています。 exeを実行中に、タスクマネージャーのプロセス一覧の「説明」に、 そのexeの処理内容を表示したいのですが、vbのプロジェクトで設定できるの でしょうか? よろしくお願いします。

  • コンパイルしたプログラムが終了しないのですが

    VB6.0で教えてください。 コンパイルしてできたプログラムを実行し、フォームの右上にあるコントロールボックスから閉じると、フォームは非表示になるものの、プログラム自体がメモリに残っているようです。 完全に消すには何かコードを追加する必要があるのでしょうか?

専門家に質問してみよう