有没有人知道,如果可以使用C#更改Taskmanager中其他程序的名称? 如果是,如何,因为我正在制作一个程序,搜索 Edge.exe ,然后我希望它将名称更改为 Internet.exe
答案 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");