using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.Net; using System.IO; using System.Runtime.InteropServices; namespace WebBrowserTest { public partial class Form1 : Form { public Form1() { InitializeComponent(); } //记事本需要的变量 [DllImport("User32.dll")] public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, string Iparam); [DllImport("User32.dll")] public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow); public const uint WM_SETTEXT = 0X00C;//0x00F5 private void btnOpen_Click(object sender, EventArgs e) { OpenPage(); } //打开网页 void OpenPage() { if (txtAddress.Text.Length > 0) { webBrowser1.Navigate(txtAddress.Text.Trim(), false); } else { MessageBox.Show("请输入网址"); } } private void webBrowser1_NewWindow(object sender, CancelEventArgs e) { e.Cancel = true; if (webBrowser1.Document.ActiveElement != null) { string address = webBrowser1.Document.ActiveElement.GetAttribute("href"); webBrowser1.Navigate(address); txtAddress.Text = address; } } private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e) { if (webBrowser1.CanGoBack) { //tsWebBrowser.Items[0].Enabled = true; tsbBack.Enabled = true; } else { tsbBack.Enabled = false; } if (webBrowser1.CanGoForward) { tsWebBrowser.Items[1].Enabled = true; } else { tsWebBrowser.Items[1].Enabled = false; } } private void tsWebBrowser_ItemClicked(object sender, ToolStripItemClickedEventArgs e) { try { if (e.ClickedItem.Name == "tsbBack") { webBrowser1.GoBack(); } if (e.ClickedItem.Name == "tsbForward") { webBrowser1.GoForward(); } if (e.ClickedItem.Name == "tsbRefresh") { webBrowser1.Refresh(); } if (e.ClickedItem.Name == "tsbHome") { webBrowser1.GoHome(); } if (e.ClickedItem.Name == "tsbStop") { webBrowser1.Stop(); } if (e.ClickedItem.Name == "tsbExit") { if (MessageBox.Show("确认退出?", "退出对话框", MessageBoxButtons.OKCancel) == DialogResult.OK) { Application.Exit(); } } if (e.ClickedItem.Name == "tsbViewSource") { WebRequest wrq = WebRequest.Create(txtAddress.Text); WebResponse wrs = wrq.GetResponse(); StreamReader sr = new StreamReader(wrs.GetResponseStream(), Encoding.Default); string page = ""; string code = null; while ((code = sr.ReadLine()) != null) { page += code; } System.Diagnostics.Process pro = new System.Diagnostics.Process(); pro.StartInfo.UseShellExecute = false; pro.StartInfo.FileName = "notepad.exe";//获取要启动的记事本 //不适用操作系统外壳启动程序进程 pro.StartInfo.RedirectStandardInput = true;//读取 pro.StartInfo.RedirectStandardOutput = true;//将应用程序写入到流中 pro.Start();//启动 if (pro != null) { //调用API,传递数据 while (pro.MainWindowHandle == IntPtr.Zero) { pro.Refresh(); } IntPtr vHandle = FindWindowEx(pro.MainWindowHandle, IntPtr.Zero, "Edit", null); //传递数据给记事本 SendMessage(vHandle, WM_SETTEXT, 0, page); } } } catch (Exception ex) { MessageBox.Show(ex.Message); } } private void txtAddress_KeyPress(object sender, KeyPressEventArgs e) { char key = e.KeyChar; if (key == 13)//回车 { OpenPage(); } } private void Form1_Load(object sender, EventArgs e) { txtAddress.Text = @"http://www.baidu.com"; OpenPage(); } } }