Как закрыть процесс другого процесса? - PullRequest
0 голосов
/ 07 апреля 2020

У меня нет большого опыта работы с процессами, поэтому, пожалуйста, будьте терпеливы со мной.

В VS у меня есть решение с 3 проектами (proj 1, proj2, proj3). У меня есть 3 формы. Давайте назовем их F1 (созданный в proj1), F2 (созданный в proj2), F3 (созданный в proj3). Когда нажата кнопка из F1, я запускаю процесс, который открывает F2.

 processExists = Process.GetProcesses().Any(yourProcess => yourProcess.ProcessName.Contains("F2"));

                if (!processExists)
                {
                    yourProcess.StartInfo.FileName = @".\F2.exe";                    
                    yourProcess.Start();
                    checkInterfata = false;
                }

Когда F2 подходит, я запускаю другой процесс, который открывает F3.

 processExists = Process.GetProcesses().Any(aProcess => aProcess .ProcessName.Contains("F3"));

                if (!processExists)
                {
                    aProcess .StartInfo.FileName = @".\F3.exe";                    
                    aProcess .Start();
                    aProcess = false;
                }

Я могу закрыть F3 из F2, убив aProcess при нажатии кнопки «Выход». Когда я закрываю F1, F2 закрывается, убивая yourProcess. Я заметил, что когда я закрываю F3, F2 закрывается (что нормально), но без закрытия F3. Я попытался поставить на F2_FormClosing(object sender, FormClosingEventArgs e) функцию команду: aProcess.Kill();, но безуспешно. Как я могу закрыть aProcess, когда я закрываю F1?

...