0

特定のサービスのスタートアップの種類を変えるサービスプログラムを作っています。「管理者として実行」した場合でも、現在のコードでは、書き込み用にレジストリを開くことさえできません。

コード:

ServiceKey = Registry.LocalMachine;
ServiceKey = ServiceKey.OpenSubKey(@"SYSTEM\CurrentControlSet\services\" + ServiceName, true);
ServiceKey.SetValue("Start", 2, RegistryValueKind.DWord);

ただし、次のエラーが発生します。要求されたレジストリアクセスは許可されていません。誰もが解決策を知っていますか?

(追記:これを行う方法は他にもあると思いますが、レジストリにアクセスできないので気になります。)私のプログラムも任意のCPUとして実行されています。

4

2 に答える 2

3

サービスの構成を変更する方法は、レジストリを破壊することではありません。サービスコントロールマネージャーを使用します。MSDNには、サービスの開始タイプを変更するサンプルプログラムもあります。このページは、[サービスについて]に移動し、[サービス構成プログラム] 、 [サービス構成]の順にクリックして見つけました。

于 2012-09-01T03:30:34.930 に答える
1

一部のレジストリで問題が見つかりました。「権限」をチェックすると、管理者でさえレジストリを変更する権限を持っていないことに気付くでしょう。権限は自分で変更できますが、私の場合は、サービスの起動を編集するための別のアプローチを見つけます。

于 2012-09-01T02:46:06.740 に答える