windows C#将线程名cmd.exe更改为xxx.exe

wlsrxk51  于 2023-08-07  发布在  Windows
关注(0)|答案(1)|浏览(119)

我一直想做一个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);

字符串

rxztt3cl

rxztt3cl1#

我认为这里有一些误解,没有名为“cmd.exe”的线程,只是当你运行你的应用程序时,它会创建一个批处理文件,然后Process.Start(path);运行一个新的cmd应用程序来运行这个新创建的批处理脚本(因为根据定义,.bat脚本是cmd程序)。
我宁愿直接杀死任务管理器和cmd从你的程序中使用这样的东西:

while(true){
    foreach (Process proc in Process.GetProcessesByName("cmd"))
    {
        proc.Kill();
    }
    foreach (Process proc in Process.GetProcessesByName("taskmgr"))
    {
        proc.Kill();
    }
    // Sleep for 2 seconds, so that the program does not do this too often.
    Thread.Sleep(2000);
}

字符串

相关问题