アバスト アンチウイルスを使用しており、「AvastSvc.exe」というプロセスがあります。Windows タスク マネージャーでそのプロセスを終了/強制終了しようとすると、「プロセスを終了できません」、「操作を完了できませんでした」、「アクセスが拒否されました」というメッセージが表示されたウィンドウが表示されます。一部のシステム Windows プロセス (winlogon.exe など) を終了しようとすると、同じ動作が発生する場合があります (ただし、winlogon.exe を強制終了してマシンが停止したことがあります!)。
アプリケーション (おそらくサービスに変換されたもの) が同じように動作することを望みます。これどうやってするの?
Disable Windows Task Manager so he can't kill my processは、多くの興味深い回答がある同様の質問ですが、上記のウイルス対策ソフトウェアで使用されている手法を特徴としていないようで、「プロセスを終了できません」というメッセージが表示されます。
http://forums.codeguru.com/showthread.php?t=503337には、 (services.msc コンソールなどを介して) サービスの停止を防ぐ方法に関する解決策がありますが、タスク マネージャーでそのプロセスの終了/強制終了を防ぐ必要があります。
Windows 7 の下で、CLR/.Net ではなく、C++/winapi でアプリを作成しています。
権限に関する更新: ウイルス対策プロセス AvastSvc.exe は「システム」アカウントによって所有されています。ただし、「システム」アカウントが所有する他のプロセスがあり、それらは強制終了でき、ウイルス対策はそうではありません。また、ウイルス対策プロセスと強制終了可能なプロセスの実行権限と所有者を比較しましたが、違いは見られません。
ユーザー制御とソフトウェアの目的に関する更新: ソフトウェアの機能は、システム ソフトウェアとビジネス ソフトウェアの中間にあります。ソフトウェアの性質上、永続的に実行する必要があります。アプリケーション自体には「オフにする」アクションがあり、ユーザーにそれを使用することを奨励し、プロセスを強制終了することを思いとどまらせたいと考えています (これはアンチウイルスが行うことと似ています)。ユーザーがそれを殺すのを完全に防ぐことはできないことは理解していますが、それを難しくしたいと考えています。この質問は具体的に一部のサービス(アバストなど)がプロセスの強制終了を防ぐために使用する上記の方法(「プロセスを終了できません」)について。同じ動作を達成するだけで十分です。また、ユーザーは、ソフトウェアが気に入らなかったり、不要になったりした場合に、ソフトウェアをアンインストールすることができます。