Ja das nehme ich an, mit Hilfe eben.
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.Threading;
using System.Diagnostics;
using System.IO;
namespace Brunzilla
{
public partial class Form1 : Form
{
int licznik = 0;
Stopwatch sw = new Stopwatch();
public Form1()
{
InitializeComponent();
Skybound.Gecko.Xpcom.Initialize(Application.StartupPath + @"\xulrunner\");
this.SetStyle(ControlStyles.AllPaintingInWmPaint | ControlStyles.UserPaint | ControlStyles.DoubleBuffer, true);
Rectangle resolution = Screen.PrimaryScreen.Bounds;
}
public void Form1_Load(object sender, EventArgs e)
{
label2.Visible = false;
label3.Visible = false;
label1.Visible = true;
label4.Visible = false;
prg.Visible = false;
geckoWebBrowser1.Navigate("http://www.google.de");
}
private void geckoWebBrowser1_Navigating(object sender, Skybound.Gecko.GeckoNavigatingEventArgs e)
{
var thread = new Thread(() =>
{
CheckURl(e.Uri.ToString());
});
thread.Start();
}
private void CheckURl(string url)
{
if (string.IsNullOrEmpty(url))
return;
if (url.ToLower().StartsWith("https://www.facebook.com/ajax".ToLower()))
return;
try
{
var request = HttpWebRequest.Create(url);
request.Method = "HEAD";
using (var response = request.GetResponse())
{
var headerValues = response.Headers.GetValues("Content-Type");
if (headerValues != null && headerValues.Length > 0)
{
var ContentType = headerValues[0];
if (ContentType.StartsWith("application"))
{
this.Invoke(new Action(() =>
{
var dialog = new SaveFileDialog();
dialog.DefaultExt = "exe";
if (dialog.ShowDialog() == System.Windows.Forms.DialogResult.OK)
{
sw.Start();
var Client = new WebClient();
Client.DownloadFileCompleted += new AsyncCompletedEventHandler(Client_DownloadFileCompleted);
Client.DownloadProgressChanged += new DownloadProgressChangedEventHandler(Client_DownloadProgressChanged);
Client.DownloadFileAsync(new Uri(url), dialog.FileName);
prg.Visible = true;
label1.Visible = false;
label2.Visible = true;
label3.Visible = true;
label4.Visible = true;
}
}));
}
}
}
}
catch
{
}
}
void Client_DownloadFileCompleted(object sender, AsyncCompletedEventArgs e)
{
this.Invoke(new Action(() =>
{
MessageBox.Show("Download abgeschlossen");
prg.Value = 0;
label1.Visible = true;
label2.Visible = false;
label3.Visible = false;
label4.Visible = false;
label4.Text = "";
}));
}
void Client_DownloadProgressChanged(object sender, DownloadProgressChangedEventArgs e)
{
// The stopwatch which we will be using to calculate the download speed
try
{
this.Invoke(new Action(() =>
{
prg.Value = e.ProgressPercentage;
}));
if (label3.Text != (Convert.ToDouble(e.BytesReceived) / 1024 / sw.Elapsed.TotalSeconds).ToString("0"))
label4.Text = (Convert.ToDouble(e.BytesReceived) / 1024 / sw.Elapsed.TotalSeconds).ToString("0.00") + " kb/s";
if (label3.Text != e.ProgressPercentage.ToString() + "%")
label3.Text = e.ProgressPercentage.ToString() + "%";
label2.Text = (Convert.ToDouble(e.BytesReceived) / 1024 / 1024).ToString("0.00") + " Mb's" + " / " + (Convert.ToDouble(e.TotalBytesToReceive) / 1024 / 1024).ToString("0.00") + " Mb's";
}
catch
{
}
}
private void button5_Click(object sender, EventArgs e)
{
geckoWebBrowser1.Navigate("http://www.google.de");
}
private void button10_Click(object sender, EventArgs e)
{
try
{
geckoWebBrowser1.Navigate("http://www.Facebook.de");
if (licznik == 0)
{
geckoWebBrowser1.Focus();
}
}
catch
{
}
}
private void button8_Click(object sender, EventArgs e)
{
}
private void button7_Click(object sender, EventArgs e)
{
geckoWebBrowser1.Navigate("http://www.Youtube.de");
if (licznik == 0)
{
geckoWebBrowser1.Focus();
}
}
private void button9_Click(object sender, EventArgs e)
{
geckoWebBrowser1.Navigate("https://www.google.de/#q=" + textBox2.Text);
if (licznik == 0)
{
geckoWebBrowser1.Focus();
}
}
private void textBox2_TextChanged(object sender, EventArgs e)
{
}
private void button2_Click(object sender, EventArgs e)
{
geckoWebBrowser1.GoBack();
if (licznik == 0)
{
geckoWebBrowser1.Focus();
}
}
private void textBox1_TextChanged(object sender, EventArgs e)
{
}
private void button1_Click(object sender, EventArgs e)
{
geckoWebBrowser1.Navigate(textBox1.Text);
if (licznik == 0)
{
geckoWebBrowser1.Focus();
}
}
private void button4_Click(object sender, EventArgs e)
{
int licznik = 0;
geckoWebBrowser1.GoForward();
if (licznik == 0)
{
geckoWebBrowser1.Focus();
}
}
private void button3_Click(object sender, EventArgs e)
{
geckoWebBrowser1.Reload();
}
private void geckoWebBrowser1_Navigated(object sender, Skybound.Gecko.GeckoNavigatedEventArgs e)
{
textBox1.Text = geckoWebBrowser1.Url.ToString();
}
private void textBox1_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
e.Handled = true;
geckoWebBrowser1.Navigate(textBox1.Text);
if (licznik == 0)
{
geckoWebBrowser1.Focus();
}
}
}
private void textBox2_KeyPress(object sender, KeyPressEventArgs e)
{
if (e.KeyChar == '\r')
{
e.Handled = true;
geckoWebBrowser1.Navigate("https://www.google.de/#q=" + textBox2.Text);
if (licznik == 0)
{
geckoWebBrowser1.Focus();
}
}
}
private void geckoWebBrowser1_ProgressChanged(object sender, Skybound.Gecko.GeckoProgressEventArgs e)
{
try
{
progressBar1.Value = Convert.ToInt32(e.CurrentProgress);
progressBar1.Maximum = Convert.ToInt32(e.MaximumProgress);
}
catch
{
}
}
private void button8_Click_1(object sender, EventArgs e)
{
prg.Visible = !prg.Visible;
label3.Visible=! label3.Visible;
label2.Visible =!label2.Visible;
label4.Visible = !label4.Visible;
}
private void button6_Click_3(object sender, EventArgs e)
{
AboutBox1 aboutDlG = new AboutBox1();
aboutDlG.ShowDialog();
}
private void geckoWebBrowser1_Click(object sender, EventArgs e)
{
}
}
}