Open Chrome from command line and wait till it's closed

后端 未结 3 2106
后悔当初
后悔当初 2021-02-13 01:29

I\'m using following code to iterate over a list of browsers executable paths and start each of them:

foreach (var browser in browsers)
{
    var proc = new Proc         


        
3条回答
  •  有刺的猬
    2021-02-13 02:26

    If you want to open/close entire Chrome window:

    Chrome by default is constantly running in background because of its default settings. Change this option to unchecked:
    Settings > Show advanced > System > 'Continue running background apps when Google Chrome is closed'

    So you have to make sure Chrome is closed before you run it again by your code. That works for me.


    If you want to open/close related tabs only:

    Chrome have one 'mother process' and some child processes. The problem is that if you run chrome using your code you are trying to create new instance of 'mother process' but the existing one won't let you do it. She'll instantly kill your new process and create her own child instead. That's how it works...

    So, all you need is figure out how to run another 'chrome mother process' and prevent the previous hug from killing her ;P

    I figure out this solution:
    Run new chrome process with this parameter --user-data-dir="%temp%/random_name". This means that you are opening chrome with new user profile.

    Advantages:

    • It works
    • Chrome is opening in new window
    • Chrome is closing when all related tabs are closed

    Disadvantages:

    • Default settings (no bookmarks, etc) but you can copy them from default user profile directory

    So, maybe you should look for sth in this direction...

提交回复
热议问题