回 帖 发 新 帖 刷新版面

主题:[转帖]windows应用程序版的google搜索引擎源码

很多时候感觉用www.google.com搜索网站挺麻烦的,查阅MSDN的知识库后用C#写了这个windows应用程序版的google搜索引擎,主要调用了google开放出来的web service,不过搜索时速度还不是很快,但至少省去了右键[在新窗口中打开]的麻烦,以下是程序的源码,虽然挺长的,不过关键代码并不多,抛砖引玉吧。

//Form1.cs

using System;
using System.Drawing;
using System.Collections;
using System.ComponentModel;
using System.Windows.Forms;
using System.Data;
using System.Diagnostics;

namespace WindowsApplication2
{

public class Form1 : System.Windows.Forms.Form
{
private System.Windows.Forms.TextBox textBox2;
private System.Windows.Forms.Button button1;
private System.Windows.Forms.Label label1;
private System.Windows.Forms.Label label2;
private System.Windows.Forms.ListBox listBox1;
private String sKey;

private System.ComponentModel.Container components = null;

public Form1()
{
InitializeComponent();
}


protected override void Dispose( bool disposing )
{
if( disposing )
{
if (components != null)
{
components.Dispose();
}
}
base.Dispose( disposing );
}

#region Windows Form Designer generated code

private void InitializeComponent()
{
this.textBox2 = new System.Windows.Forms.TextBox();
this.button1 = new System.Windows.Forms.Button();
this.label1 = new System.Windows.Forms.Label();
this.label2 = new System.Windows.Forms.Label();
this.listBox1 = new System.Windows.Forms.ListBox();
this.SuspendLayout();
//
// textBox2
//
this.textBox2.Location = new System.Drawing.Point(8, 32);
this.textBox2.Name = "textBox2";
this.textBox2.Size = new System.Drawing.Size(240, 21);
this.textBox2.TabIndex = 1;
this.textBox2.Text = "ERP";
//
// button1
//
this.button1.Location = new System.Drawing.Point(264, 32);
this.button1.Name = "button1";
this.button1.TabIndex = 2;
this.button1.Text = "搜索";
this.button1.Click += new System.EventHandler(this.button1_Click);
//
// label1
//
this.label1.BackColor = System.Drawing.SystemColors.Info;
this.label1.Location = new System.Drawing.Point(136, 8);
this.label1.Name = "label1";
this.label1.Size = new System.Drawing.Size(104, 16);
this.label1.TabIndex = 3;
this.label1.Text = "单击此处获得帮助";
this.label1.Click += new System.EventHandler(this.label1_Click);
//
// label2
//
this.label2.Location = new System.Drawing.Point(8, 8);
this.label2.Name = "label2";
this.label2.TabIndex = 4;
this.label2.Text = "请输入关键字: ";
//
// listBox1
//
this.listBox1.HorizontalScrollbar = true;
this.listBox1.ItemHeight = 12;
this.listBox1.Location = new System.Drawing.Point(8, 64);
this.listBox1.Name = "listBox1";
this.listBox1.Size = new System.Drawing.Size(360, 292);
this.listBox1.TabIndex = 5;
this.listBox1.DoubleClick += new System.EventHandler(this.listBox1_DoubleClick);
//
// Form1
//
this.AcceptButton = this.button1;
this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);
this.ClientSize = new System.Drawing.Size(376, 365);
this.Controls.Add(this.listBox1);
this.Controls.Add(this.label2);
this.Controls.Add(this.label1);
this.Controls.Add(this.button1);
this.Controls.Add(this.textBox2);
this.Name = "Form1";
this.Text = "Google搜索引擎 V1.0 by yzwgh@sina.com";
this.ResumeLayout(false);

}
#endregion


[STAThread]
static void Main()
{
Application.Run(new Form1());
}

private void button1_Click(object sender, System.EventArgs e)
{
try
{
sKey="R1SnlcZQFHIBYlBCYdip3j1ERCvueU2Z";
googleapi.GoogleSearchService s=new googleapi.GoogleSearchService();


googleapi.GoogleSearchResult r=s.doGoogleSearch(sKey, textBox2.Text,
0, 10, false, "", false, "", "", "");
googleapi.ResultElement[] re=r.resultElements;
this.listBox1.Items.Clear();
for (int i=0;i<re.Length;i++)
{

this.listBox1.Items.Add((object)(re[i].title));
this.listBox1.Items.Add((object)(re[i].URL));

}
}
catch(Exception eee)
{
MessageBox.Show(eee.Message,this.Text );
}

}

private void listBox1_DoubleClick(object sender, System.EventArgs e)
{
try
{
String url;
url=listBox1.Text;
Process p = Process.Start(@url);
}
catch (Exception ee)
{
MessageBox.Show(ee.Message);
}
}

private void label1_Click(object sender, System.EventArgs e)
{
String s;
s=this.Text + "\n";
s=s+"作者:yzwgh\n";
s=s+"EMail:yzwgh@sina.com\n";
s=s+"双击下面的网址可打开相应的链接。";
MessageBox.Show(s,this.Text );
}
}
}

回复列表 (共1个回复)

沙发

我来回复

您尚未登录,请登录后再回复。点此登录或注册