わかりましたので、 I have no will power 実験のパート 2は次のとおりです。
まとめの質問 - Windows サービスで CanStop プロパティを動的に設定する方法はありますか?
Whole Spiel - 私は現在、プロセス (IE ゲーム) をチェックして強制終了しているサービスを持っています。偉大な。CanStop を false に設定して、中毒になった場合にサービスを強制終了できないようにします。パスワードが正しい場合にサービスを停止するパスワードチェック(他の誰かがパスワードを入力)を行うプログラムがあります。(深刻な引き出しがある場合) ServiceController クラスの使用に問題があります。
私が知る限り、ServiceController は単なるデコレータ (設計パターンの推測) であるため、それが表す実際のサービスを取得する方法はありません。最初の試みは Property Info でしたが、私は愚かすぎて、それが無意味であることに気づきませんでした。2 番目はフィールド情報でした。サービスを「表す」プライベート フィールドがあるのではないかと考えたからです。ご想像のとおり、両方とも失敗しました。
何か案は?
EDIT 1 設定ファイルやレジストリのように簡単にアクセスできる場所に CanStop 値を設定することは避けたいと思います。そのため、成功していませんが、これをプログラムで完全に処理しようとしています。
新しい (失敗した) 試行:
ManagementObject サービス; ManagementBaseObject stopService;
service = new ManagementObject("Win32_Service.Name='StopProgram'");
stopService = service .InvokeMethod("StopService", null, null);
これが何かをしたかどうかはわかりません。CanStop の状況で停止できなかったと思います。