首页 > 解决方案 > 如何使用应用程序名称而不是进程名称杀死应用程序

问题描述

我有一个程序可以像这样检索应用程序列表

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 获取所有应用程序进程,而无需运行每个程序来获取它们。

标签: c#windowsvisual-studiokill

解决方案


如果您的任务是终止或退出具有特定名称的所有正在运行的进程,您可能只需调用GetProcessByName(string processName)来获取与该名称匹配的所有进程实例。如果您返回一个非空的实例数组,请在每个实例上调用Close()Kill()


推荐阅读