使用c#更改其他程序的名称

时间:2018-06-06 09:28:52

标签: c# taskmanager

有没有人知道,如果可以使用C#更改Taskmanager中其他程序的名称? 如果是,如何,因为我正在制作一个程序,搜索 Edge.exe ,然后我希望它将名称更改为 Internet.exe

3 个答案:

答案 0 :(得分:3)

所以你想要

  

更改其他程序的名称

但是您的查询是不明确的,因为流程名称与应用程序名称之间存在差异。第一个来自可执行文件版本信息资源,可以在C#中访问 Process.ProcessName这是一个只读属性,因此您无法设置它。

由于显而易见的原因,您无法使用任何其他方法设置它。只有恶意软件会以这种方式伪装。

但是,您可以更改应用程序名称而不是进程名称,因为它已链接到进程主窗口的标题。

e.g。要改变它你可以使用

[DllImport("user32.dll")]
private static extern bool SetWindowText(IntPtr hWnd, string text);

private void ChangeEdgeToInternet()
{
    foreach(Process process in Process.GetProcessesByName("Edge"))
    {
        SetWindowText(process.MainWindowHandle, "Internet");
    }
}

答案 1 :(得分:1)

如果不进行一些未记录的内存访问,则无法执行此操作。最后,TaskManager在Name列中显示的信息来自GetModuleBaseName() API。显然,没有SetModuleBaseName() API。还有另一个类似的API:GetProcessImageFileName (),仍然没有设置。

答案 2 :(得分:-3)

您可以重命名该程序的可执行文件。希望这会有所帮助。

System.IO.File.Move(directoryPath+"\\Edge.exe", directoryPath+"Internet.exe");