我使用此代码启动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 7上测试了这个(32位和64位)。