Как можно завершить работу приложения Chrome, которое запускается не через действие Launch, а из другого приложения, например Powershell?

Когда я запускаю приложение через этап навигации и действие запуска, нет проблем с завершением приложения. В настоящее время я работаю над процессом, который запускает Chrome через Powershell. Когда я пытаюсь завершить / закрыть приложение, один хром-процесс закрывается. Но в диспетчере задач 10 хромовых процессов. Хром-окошко не закрывается.

Вот то, что я уже пробовал: - использовать этап навигации и действие завершения - идентифицировать окно, используя режим win32, а затем действие закрытия на этапе навигации - вызвать фрагмент JS: window.close () -> возвращает только окна, которые были открыты кодом также могут быть закрыты кодом

Так что еще я могу попробовать?


person Kevin01    schedule 08.10.2019    source источник
comment
Вы конкретно сказали, что это не работает - но откуда вы знаете? Вы не указали сообщения об ошибках, которые видите (если есть).   -  person esqew    schedule 08.10.2019
comment
Также - почему бы просто не использовать родную Blue Prism методологию присоединения к работающему экземпляру и только затем отправить ему Terminate?   -  person esqew    schedule 09.10.2019
comment
Потому что окно таким образом не закрывается   -  person Kevin01    schedule 10.10.2019
comment
Вы можете использовать Kill Process в Utility - Environment VBO   -  person Zac    schedule 28.10.2019


Ответы (4)


Вы также можете использовать действие «Kill Process» в Utility - Environment VBO для нацеливания на все открытые экземпляры процесса chrome.exe.

person esqew    schedule 09.10.2019

Вы всегда можете вызвать taskkill из командной строки (или PS):

taskkill /IM chrome.exe /F
person Marek Stejskal    schedule 08.10.2019

Этот C # должен закрывать все запущенные экземпляры Chrome (с помощью System.Diagnostics). Поместите его на сцену кода:

        Process[] processes;
        string procName = "chrome";
        processes = Process.GetProcessesByName(procName);

        foreach (Process proc in processes)
        {
            proc.CloseMainWindow();
        }

Если вы не знаете, как это сделать, вы можете увидеть еще один из моих ответов здесь.

person Badda_Bing    schedule 08.10.2019
comment
Нужно ли мне загружать System.Diagnostics.dll или я должен добавить System.Diagnostics.dll на страницу инициализации в параметрах кода? - person Kevin01; 09.10.2019
comment
Blue Prism использует платформу .NET, поэтому все, что вам нужно сделать, это разместить ссылку на .dll и пространство имен на вкладке параметров кода на странице инициализации. В другом моем посте показано, как это сделать, просто перейдите по ссылке в ответе. Тогда System.Diagnostics должна быть сборкой фреймворка, не похожей на COM .dll (например, Interops для Office и т. Д.), Поэтому вам не нужно ссылаться на расположение каталога для .dll или загружать что-либо. - person Badda_Bing; 09.10.2019

Эта оболочка Powershell убьет весь ваш процесс Chrome

get-process chrome | stop-process
person V3R0    schedule 08.10.2019