在C#中,如果登录帐户是非管理员用户,如何停止/启动/检查是否已注册?
我有一个服务,它的LogOnAs不是本地系统。它是另一个用户(比如说使用管理权限测试)。使用普通代码:不工作,它总是抛出异常在C#中,如果登录帐户是非管理员用户,如何停止/启动/检查是否已注册?,c#,service,C#,Service,我有一个服务,它的LogOnAs不是本地系统。它是另一个用户(比如说使用管理权限测试)。使用普通代码:不工作,它总是抛出异常 public bool IsServiceInstalled(String serviceName) { bool IsInstalled = false; // get list of Windows services ServiceController[] services = ServiceControll
public bool IsServiceInstalled(String serviceName)
{
bool IsInstalled = false;
// get list of Windows services
ServiceController[] services = ServiceController.GetServices();
// try to find service name
foreach (ServiceController service in services)
{
if (service.ServiceName == serviceName)
{
IsInstalled = true;
break;
}
}
return IsInstalled;
}
非常感谢您的帮助……首先,您可以通过以下方式简化您的逻辑:
public bool IsServiceInstalled(String aServiceName)
{
ServiceController sc = ServiceController.GetServices()
.FirstOrDefault(s => s.ServiceName == aServiceName);
return (sc != null) ;
}
这将使用linq获取第一个与传递的名称匹配的服务(我已将参数更改为aServiceName
,a
代表参数)
它不会解决您的问题,但更易于阅读和维护
当你正常登录时,这对你有用吗 当我正常登录时,它实际上对我有效…因为我只对它是否注册感兴趣…所以它解决了我的问题。。非常感谢…很高兴它有帮助。如果它解决了您的问题,您可以将其标记为已回答:)。