Yes, a voice controlled Web browser.
After vista and Win 7 released, we all know about speech recognition API. From the movie -Iron man, he got a cool robot as big toy. I think it is voice controlled toy , low A.I robot. I want one!!!!
Here I will show you how to create your own web browser with C#, forget about IE, Firefox, Chrome, etc. a voice controled one.
Today, first step, I will show your how to build a typical one, a window form web browser, next one I will show you the WPF edition, and then I will put the voice control function in.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
namespace JinGangInternet
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Navigate(this.textBox1.Text);
}
private void BackToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.GoBack();
}
private void ForwardToolStripMenuItem_Click(object sender, EventArgs e)
{
this.webBrowser1.GoForward();
}
private void StopToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.Stop();
}
private void RefreshToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!webBrowser1.Url.Equals("about:blank"))
{
webBrowser1.Refresh();
}
}
private void MainPageToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.GoHome();
}
private void SaveToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.ShowSaveAsDialog();
}
private void PrintToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.ShowPrintDialog();
}
private void ProperityToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.ShowPropertiesDialog();
}
private void webBrowser1_CanGoBackChanged(object sender, EventArgs e)
{
this.BackToolStripMenuItem.Enabled = webBrowser1.CanGoBack;
}
private void webBrowser1_CanGoForwardChanged(object sender, EventArgs e)
{
this.ForwardToolStripMenuItem.Enabled = webBrowser1.CanGoForward;
}
private void webBrowser1_DocumentTitleChanged(object sender, EventArgs e)
{
this.Text = webBrowser1.DocumentTitle;
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
this.textBox1.Text = webBrowser1.Url.ToString();
}
private void Navigate(String address)
{
if (String.IsNullOrEmpty(address)) return;
if (address.Equals("about:blank")) return;
if (!address.StartsWith("http://")) address = "http://" + address;
try
{
webBrowser1.Navigate(new Uri(address));
}
catch (System.UriFormatException)
{
return;
}
}
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.CanGoBackChanged += new EventHandler(webBrowser1_CanGoBackChanged);
webBrowser1.CanGoForwardChanged += new EventHandler(webBrowser1_CanGoForwardChanged);
webBrowser1.DocumentTitleChanged += new EventHandler(webBrowser1_DocumentTitleChanged);
this.webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(this.webBrowser1_Navigated);
}
}
}
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
Navigate(this.textBox1.Text);
}
private void BackToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.GoBack();
}
private void ForwardToolStripMenuItem_Click(object sender, EventArgs e)
{
this.webBrowser1.GoForward();
}
private void StopToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.Stop();
}
private void RefreshToolStripMenuItem_Click(object sender, EventArgs e)
{
if (!webBrowser1.Url.Equals("about:blank"))
{
webBrowser1.Refresh();
}
}
private void MainPageToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.GoHome();
}
private void SaveToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.ShowSaveAsDialog();
}
private void PrintToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.ShowPrintDialog();
}
private void ProperityToolStripMenuItem_Click(object sender, EventArgs e)
{
webBrowser1.ShowPropertiesDialog();
}
private void webBrowser1_CanGoBackChanged(object sender, EventArgs e)
{
this.BackToolStripMenuItem.Enabled = webBrowser1.CanGoBack;
}
private void webBrowser1_CanGoForwardChanged(object sender, EventArgs e)
{
this.ForwardToolStripMenuItem.Enabled = webBrowser1.CanGoForward;
}
private void webBrowser1_DocumentTitleChanged(object sender, EventArgs e)
{
this.Text = webBrowser1.DocumentTitle;
}
private void webBrowser1_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
this.textBox1.Text = webBrowser1.Url.ToString();
}
private void Navigate(String address)
{
if (String.IsNullOrEmpty(address)) return;
if (address.Equals("about:blank")) return;
if (!address.StartsWith("http://")) address = "http://" + address;
try
{
webBrowser1.Navigate(new Uri(address));
}
catch (System.UriFormatException)
{
return;
}
}
private void Form1_Load(object sender, EventArgs e)
{
webBrowser1.CanGoBackChanged += new EventHandler(webBrowser1_CanGoBackChanged);
webBrowser1.CanGoForwardChanged += new EventHandler(webBrowser1_CanGoForwardChanged);
webBrowser1.DocumentTitleChanged += new EventHandler(webBrowser1_DocumentTitleChanged);
this.webBrowser1.Navigated += new WebBrowserNavigatedEventHandler(this.webBrowser1_Navigated);
}
}
}
That's all for form1, next time I will show you cool WPF edition.