C#实现查杀本地与远程进程的方法
作者:shichen2014 时间:2023-08-10 08:01:30
本文实例讲述了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]+"\root\cimv2");
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#,进程
0
投稿
猜你喜欢
java简易小游戏制作代码
2023-11-23 19:49:38
SpringMVC+EasyUI实现页面左侧导航菜单功能
2022-09-30 17:11:01
Kotlin修饰符lateinit(延迟初始化)案例详解
2023-08-22 08:21:56
Android 使用Pull方法解析XML文件的方法
2021-08-11 21:02:16
浅谈Spring中单例Bean是线程安全的吗
2023-07-12 23:42:21
java实现导出Excel的功能
2022-07-17 15:57:28
c#测试反射性能示例
2021-12-19 23:13:47
Java并发编程之浅谈ReentrantLock
2022-08-25 10:46:02
c#使用linq把多列的List转化为只有指定列的List
2022-07-04 12:00:31
C# 对文件与文件夹的操作包括删除、移动与复制
2023-11-16 07:20:46
Java Thread之Sleep()使用方法及总结
2023-11-16 10:38:35
Android热修复及插件化原理示例详解
2023-03-07 01:37:52
Android实现点击图片上传SQLite数据库
2021-06-23 04:35:50
SpringBoot--- SpringSecurity进行注销权限控制的配置方法
2022-11-11 03:49:54
SpringCloud中分析讲解Feign组件添加请求头有哪些坑梳理
2023-05-01 19:30:11
Java Date时间类型的操作实现
2023-11-25 06:44:31
Android开发之ListView的head消失页面导航栏的渐变出现和隐藏
2022-03-02 14:25:24
Java实现FTP上传到服务器
2022-10-07 10:28:58
c#得到本月有几周和这几周的起止时间示例代码
2022-11-01 15:20:34
c# Invoke和BeginInvoke 区别分析
2022-09-03 15:20:49