c# - 如何使用应用程序名称而不是进程名称杀死应用程序
问题描述
我有一个程序可以像这样检索应用程序列表
string registry_key = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
int id = -1;
using (RegistryKey key = Registry.LocalMachine.OpenSubKey(registry_key))
{
foreach (string subkey_name in key.GetSubKeyNames())
{
using (RegistryKey subkey = key.OpenSubKey(subkey_name))
{
subkey.GetValue("DisplayName"))
上面的代码将返回应用程序的名称,例如 Google 会给我一个“Google Chrome”而不是“chrome.exe”的输出 我无法找到一种方法来杀死具有输出“Google Chrome”的应用程序,或者找到一种方法来从 PC 获取所有应用程序进程,而无需运行每个程序来获取它们。
解决方案
如果您的任务是终止或退出具有特定名称的所有正在运行的进程,您可能只需调用GetProcessByName(string processName)来获取与该名称匹配的所有进程实例。如果您返回一个非空的实例数组,请在每个实例上调用Close()或Kill()。
推荐阅读
- c++ - 有没有办法从对列表中获取列表,有效地将列表分成两个在 C++ 中
- python - Python Graph Search——确定后继节点是否比当前节点更接近目标
- android - EncryptedFile 加密什么类型的文件
- reactjs - 如何在 ReactJS 中使用上下文来更改不同函数中的属性
- apache-flink - 在 Apache Flink/Ververica CE 中添加自定义连接器
- javascript - 在javascript中更新对象属性?
- python - 将pycharm中的终端从sh改为普通
- jpa - 为什么 JPA EntityManager 会阻止代码执行?
- java - 如何检查java方法是否返回null而无需运行两次
- php - 无法使用 ShipStation API 创建订单