在任务管理器中更改进程名称

6

我有一个在服务器上运行的Windows窗体应用程序。现在我需要同时运行多个相同应用程序的实例。每个实例将连接到不同的数据库。在应用程序启动期间,我更改了标题以便可以识别连接的是哪个数据库,但我也想在任务管理器中更改名称。这是因为我有另一个应用程序作为监管者,根据需要杀死和启动进程。我必须找到一种清晰地识别要终止的进程的方法。


7
您的主管应用能否启动进程,以便您从一开始就拥有PID?还是它需要能够单独运行? - Gray
@Destrictor:我不认为这是同一个问题。他想要具有不同名称的多个实例,而不仅仅是一个新名称。 - Gray
析构函数并没有提供任何真正的解决方案。WabeMax,可以查看这个答案,以了解另一种实现方式:https://dev59.com/70jSa4cB1Zd3GeqPCRJq - MethodMan
2
@leppie 那样做行不通。任务管理器显示原始可执行文件的名称(例如,尝试 mklink foo.exe %windir%\system32\notepad.exe,在任务管理器中仍将显示 notepad.exe)。 - Christian.K
复制exe文件。按喜好重命名。 - leppie
显示剩余3条评论
2个回答

1
让您的主管创建一个临时副本可执行文件,包括您的身份信息,并启动该副本...以便任务管理器看起来像这样。
My process - database 1.exe
My process - database 2.exe
et cetera

0
如果Supervisor程序是启动进程的程序,那么您将完全控制这些子进程。您可以根据需要轻松地杀死/启动它们。根据需要使用Process
using System.Diagnostics;

Process p1 = new Process();
Process p2 = new Process();
Process p3 = new Process();

p1.StartInfo.FileName = "notepad.exe";
p2.StartInfo.FileName = "notepad.exe";
p3.StartInfo.FileName = "notepad.exe";

//start the procs
p1.Start();
p2.Start();
p3.Start();

//kill the procs
p1.Kill();
p2.Kill();
p3.Kill();

如果您想让某些超级用户可以访问并终止进程,为什么不让他们通过GUI来完成呢?如果没有GUI,他们是如何运行程序的?是通过cmd启动吗?
从我的下面的评论中复制:
如果用户想要能够从任务管理器中特别终止进程,他们可以使用应用程序选项卡选择正确的进程(您需要给它一个唯一的窗口标题),然后他们可以右键单击>转到进程并从那里终止。

有一个带有“停止”按钮的GUI,只是那些“超级用户”觉得通过任务管理器杀死进程更“专业”。 - WaveMax
哈哈...好的...也许可以在标题窗口中放置一个唯一标识符。例如,“程序DB-ABC”,然后他们可以从应用程序选项卡中单击“转到进程”以查看该窗口。您还可以在某个地方显示当前PID,然后他们可以使用命令提示符来终止该进程。例如:TASKKILL /PID 1230 - Gray

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接