c# - 进程的真实名称
问题描述
我目前正在构建一个程序来检查程序是否正在运行。目标是在程序尚未运行时也执行该程序。
唯一的问题是我必须得到一个程序的“真实姓名”。我如何找到它?
示例:文本编辑器称为记事本
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
并下载此用户进程查找器。
推荐阅读
- list - 如何通过 Terraform 0.12 中的列表(对象)进行 for_each
- c# - 在 C# 中访问 Sharepoint Online 上的数据/文件
- r - 在 R 中测试字符串相等性,其中字符串的顺序不同
- python - 有没有办法使用列表推导来创建参数化 lambda 函数的列表?
- angular - 捆绑到 UMD 错误无法从 dist\fesm5\my-api-name.js 解析“my-service”
- r - ggplot2 - 为控制变量的不同条件绘制拟合值
- sql - 返回所有用户,即使是那些不符合我标准的用户
- c# - 排序列表
关于对象的属性 - r - ggplot2中的指数衰减
- python - Numpy数组 - IndexError:数组索引过多