基本的に、午後 11 時以降にインターネット アクセスをブロックするプログラムを作成しています。しかし、私の唯一の問題は、コンピューターをシャットダウンするなど、バイパスする方法がたくさんあることです。ユーザーは、プロセスが OS 自体によって閉じられるまで待ってから、シャットダウン操作をキャンセルする必要があります (Windows 7)。
PCがシャットダウンする前にプログラムが終了しないようにする方法はありますか?
インターネット アクセスをブロックすることが目的の場合は、PC ではなくルーターにこのルールを適用することをお勧めします。これは、はるかにシンプルで信頼性の高いソリューションになります。お使いのルーターはおそらく既にこの機能をサポートしていますが、そうでない場合は、新しいコンシューマ グレードのルーター (非常に安価) を購入したり、サポートするカスタム ファームウェアをインストールしたりできます ( Linksys WRT-54GL および会社のTomatoファームウェアを参照)。 .
ルーターのアプローチがうまくいかず、ソフトウェアでインターネット アクセスをブロックする必要がある場合は、最初に Windows の "ローカル ポリシー" または "グループ ポリシー" を調査して、必要なことができるかどうかを確認することをお勧めします。
それが複雑すぎる場合は、既製のソリューションを見つけてみてください。ZoneAlarm または NetNanny を調べて、それらのいずれかがうまくいくかどうかを確認します。
しかし、それを行うために C# プログラムを作成することに熱心な場合は、おそらくWindows Service の作成を検討することをお勧めします。サービスの作成と展開はより複雑ですが、起動時に実行するように構成でき、通常のデスクトップ アプリのようにユーザー セッションに依存しません。
それは実際にはやや複雑です。ウイルスのようなものです。どうやって常に実行しているのですか?
ドライバーについて読みたいと思うかもしれません。ドライバーは、オペレーティング システムによる最高の "信頼" を持っています。コンピュータ内のあらゆるものに物理的にアクセスできます。ドライバーまたはコアファイル以外は、ユーザーが手動で閉じることができますが、何らかの方法でです。
あなたができるもう一つのことは、ファイルを「焼き付ける」ことですKernal.DLL
。コンピューター上の別のオペレーティング システム (Linux など) を使用するか、ハード ディスクに物理的に書き込む (Windows の API を使用しない) ことで実行できます。ドライバーに物理的にアクセスするには、これを確認してください。