C#实现查杀本地与远程进程的方法
C#实现查杀本地与远程进程的方法
发布时间:2016-12-28 来源:查字典编辑
摘要:本文实例讲述了C#实现查杀本地与远程进程的方法。分享给大家供大家参考。具体实现方法如下:复制代码代码如下:usingSystem;using...

本文实例讲述了C#实现查杀本地与远程进程的方法。分享给大家供大家参考。

具体实现方法如下:

复制代码 代码如下:using System;

using System.Management;

using System.Threading;

class xkill

{

public static void usage()

{

Console.WriteLine();

Console.WriteLine("xkill v1.0 Beta, By R&S");

Console.WriteLine("E-mail: yrwithsh@vip.sina.com");

Console.WriteLine("H-Page: Http://fz5fz.yeah.net");

Console.WriteLine();

Console.WriteLine("Usage: xkill [ip] [account] [password] [programme] [time(s)]");

Console.WriteLine("If its the localhost,dont need account and password");

Console.WriteLine("Example: xkill 218.194.X.X administrator 123 qq.exe 60");

Console.WriteLine(" xkill 218.194.X.X administrator NULL qq.exe 60");

Console.WriteLine(" xkill 127.0.0.1 qq.exe 60 (for localhost)");

}

public static void Main(string[] args)

{

if((args.Length!=5)&&(args.Length!=3))

{

usage();

Environment.Exit(0);

}

while((args[0]=="127.0.0.1")││(args[0]=="192.168.0.1"))

{

string KillName=args[1];

ManagementObjectSearcher link = new ManagementObjectSearcher("SELECT * From Win32_Process");

ManagementObjectCollection Collection = link.Get();

foreach (ManagementObject Process in Collection)

{

Console.WriteLine("{0} {1}",Convert.ToString(Process["Name"]).PadRight(15),Process["ExecutablePath"]);

if (Convert.ToString(Process["Name"])==KillName)

{

string[] Tparas = {"1"};

Process.InvokeMethod("Terminate", Tparas);

}

}

Console.WriteLine();

Console.WriteLine("Terminate it yet");

Thread.Sleep(Convert.ToInt32(args[2])*1000);

}

try{

do

{

string KillName=args[3];

ConnectionOptions Conn = new ConnectionOptions();

Conn.Username =args[1];

if(args[2]=="NULL")

{

Conn.Password ="";

}

else Conn.Password =args[2];

ManagementPath p = new ManagementPath(""+args[0]+"rootcimv2");

ManagementScope ms = new ManagementScope(p,Conn);

ObjectQuery oq = new ObjectQuery("SELECT * FROM Win32_Process");

ManagementObjectSearcher link = new ManagementObjectSearcher(ms,oq);

ManagementObjectCollection Collection = link.Get();

Console.WriteLine("--------------------------------------------------------");

foreach (ManagementObject Process in Collection)

{

Console.WriteLine("{0}{1}",Convert.ToString(Process["Name"]).PadRight(15),Process["ExecutablePath"]);

if (Convert.ToString(Process["Name"])==KillName)

{

string[] Tparas = {"1"};

Process.InvokeMethod("Terminate", Tparas);

}

}

Thread.Sleep(Convert.ToInt32(args[4])*1000);

}while(true);

}

catch(Exception exObj)

{

Console.WriteLine();

Console.WriteLine("failed!");

Console.WriteLine(exObj.Message);

}

}

}

希望本文所述对大家的C#程序设计有所帮助。

推荐文章
猜你喜欢
附近的人在看
推荐阅读
拓展阅读
相关阅读
网友关注
最新C#教程学习
热门C#教程学习
编程开发子分类