问题描述
我目前正在构建一个程序来检查程序是否正在运行。目标是在程序尚未运行时也执行该程序。
唯一的问题是我必须获得程序的“真实姓名”。我如何找到它?
示例: 文本编辑器叫做记事本
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 的程序和某些选定的程序...
解决方法
是时候回答我自己的问题了。
如果你想启动一个进程,你不需要“真实姓名”(这是 Jimi 在评论中正确指出的进程名称)。
在
的情况下Process.Start("add Path in here");
但是如果你想检查一个进程是否已经在运行,你必须使用进程名称。 在
的情况下Process.GetProcessesByName("add the executable name in here");
在某些情况下,您必须在其他情况下使用 .exe。这取决于每个程序,虽然我不明白为什么。
如果你想找出进程名称,只需打开任务管理器并打开详细版本。然后右键单击顶部并选择进程名称选项。然后它会显示进程名称。您也可以转到 Github:https://github.com/yibn2008/find-process
并下载此用户进程查找器。