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
  • asp之家 软件编程 m.aspxhome.com