Как найти имя процесса из раздела реестра и убить выбранные процессы? - PullRequest
0 голосов
/ 24 октября 2019

Я собираюсь убить некоторый процесс, который может быть выбран динамически на стороне пользователя. Я кодировал для отображения списка установленного программного обеспечения. Но дело в том, что отображаемое имя отличается от имени службы. Так что некоторые приложения не могут быть убиты. Когда я пытаюсь получить exe-имена файлов, это часто приводит к ошибке «Отказано в доступе».

 string uninstallKey = @"SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall";
        using (RegistryKey rk = Registry.LocalMachine.OpenSubKey(uninstallKey))
        {
            foreach (string skName in rk.GetSubKeyNames())
            {
                if (rk == null)
                {
                }
                else
                {
                    using (RegistryKey sk = rk.OpenSubKey(skName))
                    {

                        try
                        {
                            List<string> location = new List<string>();
                            string getname = sk.GetValue("DisplayName").ToString();

                            if (getname != null)
                            {
                                location.Add(sk.GetValue("InstallLocation").ToString());
                                lstInstalled.Items.Add(new { Col1 = getname });
                            }
                        }
                        catch (Exception ex)
                        { }

                    }
         }}

здеськод для удаления выбранных приложений

    foreach (DataRow row in dt.Rows)
            {
                string cs = row["softwarename"].ToString().ToLower();

                string[] namelist = cs.Split(' ');

                var allProcesses = Process.GetProcesses();
                foreach (Process pc in allProcesses)
                {
                    try { 
                    if (cs.Any(pc.ProcessName.ToString().ToLower().Contains))
                    {
                    pc.Kill();
                    }
                        }
                        catch {
 }
                }

                }
            }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...