我一直想做一个C#应用程序,它创建一个批处理,在一个循环中关闭所有cmd和Taskmanager。它与“taskmgr.exe”完美地工作,但如果我添加它应该关闭所有cmd的,它也会关闭自己。有没有一种方法可以改变线程本身的名字,使它不再被称为cmd.exe?
我的代码:
File.Delete(path);
using (var tw = new StreamWriter(path, true))
{
tw.WriteLine(":ttt");
tw.WriteLine("taskkill /f /Im taskmgr.exe");
tw.WriteLine("goto ttt:");
tw.WriteLine("pause");
tw.Close();
File.SetAttributes(path, FileAttributes.Hidden);
}
Process.Start(path);
字符串
1条答案
按热度按时间rxztt3cl1#
我认为这里有一些误解,没有名为“cmd.exe”的线程,只是当你运行你的应用程序时,它会创建一个批处理文件,然后
Process.Start(path);
运行一个新的cmd应用程序来运行这个新创建的批处理脚本(因为根据定义,.bat脚本是cmd程序)。我宁愿直接杀死任务管理器和cmd从你的程序中使用这样的东西:
字符串