以编程方式刷新网页

时间:2014-01-07 16:27:17

标签: c# winforms visual-studio-2010

我想知道是否可以通过点击winform应用程序中的按钮来刷新网页。

我有一个表单,当按下按钮启动进程并在浏览器窗口中显示网页时,我想在按下另一个按钮而不是打开另一个窗口时刷新它。

有可能吗?

我已经检查了这个问题stackoverflow,但是它刷新了我已经调用的文件?

我按这样启动网页:

string path = Directory.GetParent(Directory.GetCurrentDirectory())
                       .Parent.FullName; 
string target = @"DashBoard.html"; 
string finalPath = Path.Combine(path, target); 
System.Diagnostics.Process.Start(finalPath);

我已经检查了该问题中的一个解决方案并且我理解它但是我找不到的是它是否可以用于所有浏览器。

任何提示?

2 个答案:

答案 0 :(得分:2)

这可能是一个坏主意,你应该试着让网页以某种方式刷新自己。

或者 - 您可以查看Chrome API - (假设您只希望定位Chrome?)

http://dev.chromium.org/developers

作为最后的手段 - 您可以随时终止现有的浏览器流程 - 并打开一个新流程:

var process = System.Diagnostics.Process.Start(finalPath);

//When refresh wanted:
process.Close();
//open again
var process = System.Diagnostics.Process.Start(finalPath);

答案 1 :(得分:0)

我能够找到解决方案,这是我创建的功能

private void RefreshPage()
{
    int count = 0;
    IntPtr[] explorerHandle = new IntPtr[4] { 
        FindWindow(null, "DashBoard - Google Chrome"), 
        FindWindow(null, "DashBoard - Internet Explorer"),
        FindWindow(null, "DashBoard - Opera"), 
        FindWindow(null, "DashBoard - Firefox")
    };

    foreach (IntPtr value in explorerHandle)
    {
        if (value != IntPtr.Zero)
        {
            count++;
            SetForegroundWindow(value);
            SendKeys.Send("{F5}");
        }
    }
    if(count == 0)
        System.Diagnostics.Process.Start("http://localhost:9000/DashBoard.html");
}

感谢您的帮助