2

我正在尝试使用 C# 使浏览器作为弹出窗口打开。基本上,我正在检测用户何时启动浏览器,并且我想在此之后立即打开一个新的浏览器窗口,该窗口位于用户打开的窗口下方。这是我到目前为止所拥有的:

url = "example.com";
Process[] pname = Process.GetProcessesByName("chrome");

if (pname.Length == 0) // if the user didn't start chrome
{
    chrome = false;
}
else // if chrome is running
{
    if (!chrome) // if the browser wasn't opened before and it was opened just now.
    {
        Process process = new Process();
        process.StartInfo.FileName = "chrome";
        process.StartInfo.Arguments = url;
        process.StartInfo.WindowStyle = ProcessWindowStyle.Minimized;
        process.Start();
        //Process.Start("chrome", url);
    }

    chrome = true;
}

但这有时会在新窗口中打开它,有时在新选项卡中打开。也许我应该使用不同的方式来启动浏览器之类的?谢谢!

4

2 回答 2

4

当您调用外部程序(在本例中为 Chrome)时,您必须“遵循其规则”。通过查看 Chrome 参数(在此处列出),--new-window提供您想要的。因此,您必须在代码中执行以下更改:

process.StartInfo.Arguments = url + " --new-window";

如果您想完全控制,也许您应该创建自己的浏览器(例如WebBrowser 类)。

于 2013-10-13T14:20:27.270 回答
0

我建议使用 URL 作为文件名。因为这样做时,系统会自动检测到该路径是一个网页位置,并启动用户默认浏览器。这还将确定浏览器是否已经打开,如果是,则在该窗口中打开而不是启动新窗口。

大多数人更喜欢这个,而不是启动 Internet Explorer 的程序,或者在你的情况下,Chrome。

您的问题有点模糊,所以请告诉我们这是否是您寻求的答案。

于 2013-10-13T14:08:37.383 回答