Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/csharp-4.0/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 以编程方式刷新网页_C#_Winforms_Visual Studio 2010 - Fatal编程技术网

C# 以编程方式刷新网页

C# 以编程方式刷新网页,c#,winforms,visual-studio-2010,C#,Winforms,Visual Studio 2010,我想知道是否有可能通过点击winform应用程序中的按钮来刷新网页 我有一个表单,当按下一个按钮开始一个进程并在浏览器窗口中显示一个网页时,我想在按下另一个按钮而不是打开另一个窗口时刷新它 可能吗 我已经检查了这个问题,但是它会刷新我已经调用的文件吗 我启动网页的方式如下: string path = Directory.GetParent(Directory.GetCurrentDirectory()) .Parent.FullName; str

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

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

可能吗

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

我启动网页的方式如下:

string path = Directory.GetParent(Directory.GetCurrentDirectory())
                       .Parent.FullName; 
string target = @"DashBoard.html"; 
string finalPath = Path.Combine(path, target); 
System.Diagnostics.Process.Start(finalPath);
我已经检查了这个问题中的一个解决方案,我理解它,但我找不到的是,是否有一种方法可以适用于所有浏览器


有什么提示吗?

这可能是个坏主意,你应该设法让网页自行刷新

或者-您可以查看ChromeAPI-(假设您只希望针对Chrome?)

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

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

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

我找到了一个解决方案,这是我创建的函数

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");
}

感谢您的帮助

您提供的链接将允许服务器向客户端发送刷新信号。您似乎只想从客户端启动web浏览器,然后发送刷新。对吗?你是如何打开浏览器窗口的?这个问题似乎有一个不错的答案。根据您所处的环境,可能会有更好的解决方案。您是否控制启动哪个web浏览器来查看网页?也就是说,它总是启动Internet Explorer,还是可能在Chrome/Firefox/用户的默认浏览器中启动?@CharlieKilian如果我没有错的话,它会将其启动到默认的web浏览器,在我的情况下,Chrome是否考虑过将刷新按钮放在网页上而不是WinForms应用程序中?如果这个选项是可用的,它肯定会更容易,更健壮。但我不能限制自己只使用chrome