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