2013-06-04 343 views
1

好了,所以我一直在寻找周围,我不能在任何地方找到答案。在任务管理器中更改程序进程名称?

我想要什么我的程序做的是我每次运行时,在任务管理器中显示的名称是随机的。

有一个名为“解放”,当你运行它,它会进程名称更改为一些随机字符,如AeB4B3wf52.tmp什么程序。我不确定它是在什么编码,所以这可能是问题。

这是可能的C#?

编辑︰ 我做了一个马虎的工作,我创建了一个单独的程序,将检查是否有一个名为'pb.dat'的文件,它会将其复制到临时文件夹,将其重命名为'randomchars。 tmp“并运行它。

代码,如果有人有兴趣:

private void Form1_Load(object sender, EventArgs e) 
{ 
    try 
    { 
     if (!Directory.Exists(Environment.CurrentDirectory + @"\temp")) // Create a temp directory. 
      Directory.CreateDirectory(Environment.CurrentDirectory + @"\temp"); 

     DirectoryInfo di = new DirectoryInfo(Environment.CurrentDirectory + @"\temp"); 

     foreach (FileInfo f in di.GetFiles()) // Cleaning old .tmp files 
     { 
      if (f.Name.EndsWith(".tmp")) 
         f.Delete(); 
     } 

     string charList = "abcdefghijklmnopqrstuvwxyz1234567890"; 
     char[] trueList = charList.ToCharArray(); 
     string newProcName = ""; 

     for (int i = 0; i < 8; i++) // Build the random name 
      newProcName += trueList[r.Next(0, charList.Length)]; 

     newProcName += ".tmp"; 

     if (File.Exists(Environment.CurrentDirectory + @"\pb.dat")) // Just renaming and running. 
     { 
      File.Copy(Environment.CurrentDirectory + @"\pb.dat", Environment.CurrentDirectory + @"\temp\" + newProcName); 
      ProcessStartInfo p = new ProcessStartInfo(); 
      p.FileName = Environment.CurrentDirectory + @"\temp\" + newProcName; 
      p.UseShellExecute = false; 
      Process.Start(p); 
     } 
    } 
    catch (Exception ex) 
    { 
     MessageBox.Show("I caught an exception! This is a bad thing...\n\n" + ex.ToString(), "Exception caught!"); 
    } 

    Environment.Exit(-1); // Close this program anyway. 
} 
+5

听起来像是你正在编写一个病毒:) – Andrew

+0

@Andrew:哈哈,+1!无论如何,这是在互联网上找到的! http://stackoverflow.com/questions/1055987/c-how-to-set-an-projects-executable-processname – dqm

+0

这有点一所学校的项目,我正在写一个程序阻止程序关闭特定的进程,以及老师建议让名字随机化哈哈。 – Tim

回答

0

我会实现一个宿主应用程序来做到这一点,只需运行并监视子进程(其他可执行文件)。您可以重命名文件为这样:

System.IO.File.Move("oldfilename", "newfilename"); 

,并开始这样的过程:

Process.Start("newfilename"); 

这意味着,而不是一个过程中,你将有两个,但是店主过程仅需要活着在启动 - 为了改变名字。

+1

编辑了我如何做到这一点。 :我认为这是你的意思? – Tim

1

对可执行文件的名称,任务管理基础不带扩展名,它在运行时不能更改的进程名。

阅读documentation

的ProcessName属性保存可执行文件名,如 Outlook中,不包括.exe扩展名或路径。这是 用于获取和处理所有与相同的可执行文件相关联 的过程很有帮助。

+0

会不会有改变对节目的大会名称开办的方法吗?或者是用编译器构建的? – Tim

+0

您无法更改正在运行的文件的名称,因此程序集无法更改其自己的名称。 – CloudyMarble

0

在Visual Studio中去项目 - 属性 - 应用 - 装配信息和更改标题

相关问题