1、关闭进程马上又会生成水印的,根本是没法去除,为了去除水印,只能现在服务中找到相应的服务将其停掉,
2、然后再将进程杀掉,这样服务才不会再启动,不过还存在一个问题就是每次重启又会启动服务,水印就又回来了......每次开机都要操作一遍特别繁琐,所以写个程序来自动执行。
3、首先我们先来获取电脑的本地服务:ServiceController[] serviceControllers = ServiceController.GetServices();//获得服务數組 string serviceName = "Sprite"; foreach (var service in serviceControllers) //便利数组获取所有的服务 { Console.WriteLine("ServiceName:{0}\t\tServiceStatus:{1}", service.ServiceName, service.Status); }这样就能获取到所有的本地服务了。
4、接着我们找到指定的服务并将其关闭://获取指定服务,若服务状态不是Runing就Start该服务 var server = serviceControllers.FirstOrDefault(service => service.ServiceName == serviceName); //if (server != null && server.Status != ServiceControllerStatus.Running) //{ // server.Start(); //} if (server != null && server.Status != ServiceControllerStatus.Stopped) { server.Stop(); }
5、关闭了服务我们接着关闭进程,同样下来获取所有的在线进程: Process[] Processs = Process.GetProcesses();//获得进程數組 foreach (Process p in Processs) { string info = p.Id + " " + p.ProcessName + " " + p.MainWindowTitle + " " + p.StartTime; Console.WriteLine(info); }
6、接着我们遍历所有的进程,在进程中找到我们需要停止的进程然后将其关闭:for (int i = 0; i < Processs.Length; i++) { //判断此进程是否是要查找的进程 if (Processs[i].ProcessName.ToString().ToLower() == "sprite") { Processs[i].Kill();//结束进程 } }
7、完整代码如下:using System;using System.Collections.Generic;using System.Linq;using System.Text;using System.Threading;using System.Threading.Tasks;using System.ServiceProcess;using System.Diagnostics;namespace ConsoleApplication1{ class Program { static void Main(string[] args) { getService(); //ThreadPool.RegisterWaitForSingleObject(new AutoResetEvent(true), new WaitOrTimerCallback(getService),30000); } public static void getService() { ServiceController[] serviceControllers = ServiceController.GetServices();//获得服务數組 string serviceName = "Sprite"; foreach (var service in serviceControllers) //便利数组获取所有的服务 { Console.WriteLine("ServiceName:{0}\t\tServiceStatus:{1}", service.ServiceName, service.Status); } //获取指定服务,若服务状态不是Runing就Start该服务 var server = serviceControllers.FirstOrDefault(service => service.ServiceName == serviceName); //if (server != null && server.Status != ServiceControllerStatus.Running) //{ // server.Start(); //} if (server != null && server.Status != ServiceControllerStatus.Stopped) { server.Stop(); } Process[] Processs = Process.GetProcesses();//获得进程數組 foreach (Process p in Processs) { string info = p.Id + " " + p.ProcessName + " " + p.MainWindowTitle + " " + p.StartTime; Console.WriteLine(info); } //遍历所有的进程 for (int i = 0; i < Processs.Length; i++) { //判断此进程是否是要查找的进程 if (Processs[i].ProcessName.ToString().ToLower() == "sprite") { Processs[i].Kill();//结束进程 } } Console.ReadLine(); } }}