このコードを使用して Windows サービスを開始します
public static bool StartService(string serviceName, int timeoutMilliseconds, params string[] args)
{
ServiceController service = new ServiceController(serviceName);
try
{
service.Start(args);
TimeSpan timeout = TimeSpan.FromMilliseconds(timeoutMilliseconds);
service.WaitForStatus(ServiceControllerStatus.Running, timeout);
return true;
}
catch
{
return false;
}
}
しかし、このコードを試すたびに、アクセスが拒否されます。
これは UAC が原因である可能性があることを理解しています (このコードを実行している exe は昇格された特権で実行されていません)。
サービスパネルを使用して同じサービスを開始すると、実行されるのはなぜですか? サービスパネルは同じユーザー権限で開く必要がありますか?
特権を昇格せずに自分のコードを使用してこのサービスを開始するにはどうすればよいですか?
このサービスは C# で記述されておらず、ソース コードもありません。
これを Windows Seven (32 ビットと 64 ビットの両方) でテストしました。