首页 > 解决方案 > 进程的真实名称

问题描述

我目前正在构建一个程序来检查程序是否正在运行。目标是在程序尚未运行时也执行该程序。

唯一的问题是我必须得到一个程序的“真实姓名”。我如何找到它?

示例:文本编辑器称为记事本

Vlc媒体播放器称为vlc

Microsoft Powerpoint 被称为 powerpnt 我所指的真实名称是我试图获取其状态的任务的进程名称。

或者在检查文件处于活动状态后是否有不同的方法来执行文件?

所以我建立了这个:

    if (Process.GetProcessesByName("notepad").Length > 0 == true && cb1.Checked ==true )
            {
                lblsm.ForeColor = Color.Green;
                lblsm.Text = "online";
            }
            else if(Process.GetProcessesByName("notepad").Length > 0 == true && cb1.Checked == false)
            {
                lblsm.ForeColor = Color.Green;
                lblsm.Text = "online";
            }
            else if(Process.GetProcessesByName("notepad").Length > 0 == false && cb1.Checked == true)
            {
                Process.Start("notepad"); 
                lblsm.ForeColor = Color.Green;
                lblsm.Text = "online";
            }
            else
            {
                lblsm.ForeColor = Color.Red;
                lblsm.Text = "offline";
            }

//似乎这种调用进程的方式仅适用于重新安装 Windows 的程序和某些选定的程序...

标签: c#winformsprocesssystem.diagnostics

解决方案


是时候回答我自己的问题了。

如果您想启动一个流程,您不需要“真实姓名”(这是 Jimi 在评论中正确指出的流程名称)。

如果是

Process.Start("add Path in here");

但是如果你想检查一个进程是否已经在运行,你必须使用进程名。如果是

Process.GetProcessesByName("add the executable name in here");

在某些情况下,您必须在其他情况下使用 .exe。它取决于每个程序,虽然我不明白为什么。

如果您想找出进程名称,只需打开任务管理器并打开详细版本即可。然后右键单击顶部并选择进程名称选项。然后它将向您显示进程名称。也可以去Github:https ://github.com/yibn2008/find-process

并下载此用户进程查找器。


推荐阅读