C# c将线程名称cmd.exe更改为xxx.exe
我想制作一个c应用程序,创建一个在循环中关闭所有cmd和Taskmanager的批处理。它与taskmgr.exe完美配合,但如果我添加它应该关闭所有cmd,它也会自动关闭。有没有办法更改线程本身的名称,从而不再调用cmd.exe 我的代码:C# c将线程名称cmd.exe更改为xxx.exe,c#,windows,batch-file,cmd,C#,Windows,Batch File,Cmd,我想制作一个c应用程序,创建一个在循环中关闭所有cmd和Taskmanager的批处理。它与taskmgr.exe完美配合,但如果我添加它应该关闭所有cmd,它也会自动关闭。有没有办法更改线程本身的名称,从而不再调用cmd.exe 我的代码: File.Delete(path); using (var tw = new StreamWriter(path, true)) { tw.WriteL
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);
我认为这里有一些误解,没有线程名cmd.exe,只是当你运行应用程序时,它创建了一个批处理文件,然后是进程.Startpath;运行新的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);
}
复制C:\WINDOWS\system32\cmd.exe并运行该副本?我想用C制作它,如何制作?编辑:它应该可以在其他电脑上正常工作,我会有不同的想法。识别正在运行的线程,并通过检查关闭所有cmd.exe线程,以确保它不是您的。op使用的是控制台应用程序,而不是windows窗体和控制台应用程序是cmd.exe。它自己可以使用此答案并跳过父pid。如果系统访问功能正常,那么生成Cmd脚本真的不是很优雅exists@Joe_DM我不这么认为。我认为被杀死的是进程运行的蝙蝠。Startpath;。他的程序的可执行文件当然不是cmd.exe,也没有迹象表明op正在cmd中运行他的程序,他也可以直接从visual中运行,使用powershell,甚至双击它,这不应该特别运行新的cmd。@Thundzz我想你是对的,我误解了op的问题。控制台应用程序不会被称为cmd.exe,除非它是从一个cmd控制台开始执行的,无论哪种方式,我认为op已经足够从这里开始解决这个问题了。但是我如何才能为它创建一个循环:P我在编码方面非常糟糕,如果我做一个while循环,它会冻结应用程序