【问题标题】:Is the process name always the name of the exe?进程名称总是exe的名称吗?
【发布时间】:2016-05-12 11:09:24
【问题描述】:

我需要知道一个进程是否已经在运行,但我不想硬编码它的名字。我宁愿从*.exe 派生它,所以我进行了一些实验并创建了一个简单的控制台应用程序,在其中我将项目属性中的程序集名称设置为foo,然后将foo.exe 重命名为bar.exe。我检查了正在运行的进程,确实是 bar 正在运行。

这是设计使然,我可以依赖这种行为,还是进程可以与 exe 具有不同的名称,它适用于所有类型的 exe 文件还是仅适用于 .NET 程序集?

【问题讨论】:

    标签: c# .net windows


    【解决方案1】:

    can't change the image name 的进程。这是由 Windows 设置的,不可更改。它将使用可执行文件的名称来设置它,因此使用起来很安全。

    您可以简单地使用the assembly name from .NET,而不是使用进程来获取可执行文件名称:

    System.AppDomain.CurrentDomain.FriendlyName
    

    【讨论】:

    • 然而,explorer.exe 在任务管理器中显示为“Windows 资源管理器”
    • 您是否打开了详细信息选项卡?那是真正的进程名称,而不是窗口标题或文件描述。它只向我显示explorer.exe
    • 哦,我不知道它叫 image name :-) 实际上我对你所链接的问题的 OP 做了一个简单的事情,我'我正在启动工作人员并想知道他们是否已经在运行。
    • @t3chb0t 有比检查字符串描述符更好的选择,例如检查您使用的任何 IPC 机制的状态。
    • @PanagiotisKanavos 更好是指更容易或更可靠?我希望根进程检查它是否可以启动特定的工作人员,而这个工作人员只知道他们的 exe 路径,所以现在知道 exe 名称等于进程名称,我可以确定它是否已经运行,而无需硬编码任何名称。我想他们不会很快与他们交流。
    猜你喜欢
    • 2012-07-02
    • 2015-02-18
    • 1970-01-01
    • 1970-01-01
    • 2014-03-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多