C# 以编程方式删除Windows服务#

C# 以编程方式删除Windows服务#,c#,C#,我需要编写一个程序来删除窗口服务。但是,我只有服务器名。如何删除它?您可以使用System.ServiceProcess.ServiceController类查找要删除的服务。 下面的代码将为您提供安装在计算机上的服务数组(ServiceName属性是您将用于标识服务的属性): 要删除该服务,可以像下面这样调用sc命令: ProcessStartInfo psi = new ProcessStartInfo("sc"); psi.Arguments = string.Format

我需要编写一个程序来删除窗口服务。但是,我只有服务器名。如何删除它?

您可以使用System.ServiceProcess.ServiceController类查找要删除的服务。 下面的代码将为您提供安装在计算机上的服务数组(ServiceName属性是您将用于标识服务的属性):

要删除该服务,可以像下面这样调用sc命令:

ProcessStartInfo psi = new ProcessStartInfo("sc");
        psi.Arguments = string.Format("{0} delete \"{1}\"", machineName, serviceName).Trim();
        psi.RedirectStandardOutput = true;
        psi.UseShellExecute = false;
        var process = Process.Start(psi);
        process.WaitForExit(timeoutMilliseconds);
        var output = process.StandardOutput.ReadToEnd();
        if (process.ExitCode != 0)
        {
            throw new Exception(string.Format("Service delete for Windows Service {0} failed.", serviceName));
        }

上面的代码将尝试删除服务,如果超时毫秒后无法执行,则抛出异常。

好吧,您应该学习一些编程语言(例如C),然后尝试自己解决问题,如果您在这方面有任何实际问题,欢迎您这样做。StackOverflow不是一个代码编写服务。我在谷歌上搜索了你的标题,发现了两个主要匹配项,因为你一定已经找到了。它们怎么不起作用?
ProcessStartInfo psi = new ProcessStartInfo("sc");
        psi.Arguments = string.Format("{0} delete \"{1}\"", machineName, serviceName).Trim();
        psi.RedirectStandardOutput = true;
        psi.UseShellExecute = false;
        var process = Process.Start(psi);
        process.WaitForExit(timeoutMilliseconds);
        var output = process.StandardOutput.ReadToEnd();
        if (process.ExitCode != 0)
        {
            throw new Exception(string.Format("Service delete for Windows Service {0} failed.", serviceName));
        }