我在我的应用程序中打开一个html文件,如
string browserPath = GetBrowserPath();
Process process = new Process();
process.StartInfo = new ProcessStartInfo(browserPath);
process.StartInfo.Arguments = "\"" + path_htmlFile + "\"";
process.Start();
但如果我再次调用它,我的浏览器中只会显示一个新选项卡而不是刷新第一个选项卡。 我怎么能解决这个问题?
我在Visual Studio 2010中使用c#
答案 0 :(得分:0)
您可以激活浏览器应用程序,然后向其发送刷新密钥。实现此目的的一种方法是使用SetForegroundWindow Windows API函数和System.Windows.Forms.SendKeys.SendWait方法。
using System;
using System.Diagnostics;
using System.IO;
using System.Runtime.InteropServices;
using System.Windows.Forms;
class Program
{
static void Main(string[] args)
{
var browserPath = @"chrome";
RefreshBrowserTab(browserPath);
}
private static void RefreshBrowserTab(string browserPath)
{
var processName = Path.GetFileNameWithoutExtension(browserPath);
var processes = Process.GetProcessesByName(processName);
foreach (var process in processes)
{
SetForegroundWindow(process.MainWindowHandle);
}
SendKeys.SendWait("^r");
}
[DllImport("user32.dll")]
private static extern bool SetForegroundWindow(IntPtr hWnd);
}
或者,您可以使用Windows Scripting Host的WshShellObject.AppActivate和WshShellObject.SendKeys方法实现此目的。请参阅http://msdn.microsoft.com/en-us/library/ahcz2kh6(v=vs.84).aspx。