【发布时间】:2015-03-18 02:23:52
【问题描述】:
我正在尝试使用 .NET 框架 4.0 从 WPF 应用程序启动 Chrome,其代码类似于以下内容:
var arg = string.Format("--app=\"{0}\" --window-size=1024,1000", "http://bing.com");
this._process = Process.Start("chrome.exe", arg);
this._process.WaitForExit();
// Perform relevant operations once the process completes/ exit
我正在以应用模式打开 chrome。
案例 1:当我没有打开其他 Chrome 实例/窗口时,WaitForExit 会阻止控件,直到通过代码创建的 Chrome 窗口关闭 - 这就是我要寻找的。
案例 2: 如果我已经有一个 Chrome 实例正在运行。然后它不会等待通过代码创建的 chrome 实例退出并移动到下一行。我希望有与案例 1 类似的体验,即应该阻止控件,直到用户关闭 chrome 实例。
当我已经打开了多个 Chrome 实例时,我需要做些什么才能使其正常工作吗?
【问题讨论】:
-
旁注:“不工作”和“不做我想做的事”是somwehat不同的事情......在这种情况下“chrome.exe”立即存在的事实并没有使@987654323 @broken,它只是不符合你的目标......
-
当您启动 chrome 时,它会查找现有的 chrome 进程。如果找到一个,它会告诉该进程打开一个新的选项卡/窗口,然后退出。你还想等什么?您打开要关闭的 chrome 选项卡/窗口?
-
嗨,Alexei,Blorgbeard 我已添加编辑问题并提供了其他信息。希望问题现在很清楚。
-
“它不会等待通过代码创建的chrome实例退出” - 它确实等待,只是您创建的实例(实际进程)在告诉现有实例打开后立即退出而是窗户。 Chrome 有 很多 个命令行开关;你也许能找到一些让它按照你想要的方式运行的东西。看看here
-
嗨@Blorgbeard,你是对的。 'Process.Start' 确实创建了一个新实例并立即退出。事实上,它可能会创建多个进程。现在我的问题是识别由“Process.Start”创建的进程(或实例)。