标题:C#的软件如何与网页进行"交流"呢?
只看楼主
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
结帖率:100%
已结贴  问题点数:16 回复次数:7 
C#的软件如何与网页进行"交流"呢?
我想用C#编写一个windows窗体应用程序,功能是在没有打开网页的前提下,激活网页上的一些功能事件。例如一些按钮啊,一些连接啊等等。给个实例具体点说吧:

   如果我想在没有代开网页:http://zhidao.baidu.com/question/228721523.html  


的前提下,用软件自动点击“最佳答案”下面的
,使“0”变成“1”呢?

[ 本帖最后由 死亡军团 于 2011-4-13 22:42 编辑 ]
搜索更多相关主题的帖子: windows 应用程序 最佳答案 自动点击 软件 
2011-04-13 19:32
Kiss_零
Rank: 3Rank: 3
等 级:论坛游侠
帖 子:164
专家分:125
注 册:2008-11-21
得分:6 
有几个方法,我给你一个最土的,用webbrowser,你实例一个webbrowser对象即可,不需要拖控件,之后去抓取对应网页的HTML,模拟表单事件提交即可。
百度一下C#模拟表单提交,相信你会有收获。

2011-04-14 11:29
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
回复 2楼 Kiss_零
刚刚上百度查了一下,对你所说的有些了解了,但是有很多内容不太懂,请问一下可不可以给出我上面那个例子实现的windows窗体程序代码啊,这样我可以学得更加深刻!!先谢您了!!
2011-04-14 13:04
zhoufeng1988
Rank: 15Rank: 15Rank: 15Rank: 15Rank: 15
来 自:北京
等 级:贵宾
威 望:27
帖 子:1432
专家分:6329
注 册:2009-5-31
得分:6 
看看这个简单的玩意。
程序代码:
using System;
using System.Collections.Generic;
using using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using WriteAndReadWebpage;

namespace FirstWebBrower
{
    public partial class FrmWenBrowser : Form
    {
        // 应用程序根目录
        private readonly string executePath;
        // HTML文件名称
        private readonly string htmlFileName;
        // 读取网页实体
        private WebPageControl wpc;

        public FrmWenBrowser()
        {
            InitializeComponent();

            // 初始化
            executePath = System.AppDomain.CurrentDomain.BaseDirectory;
            htmlFileName = executePath + "WebPageDemo.html";
            //htmlFileName = "C:\\Program Files\\Foxmail\\SMIMEHELP\\ENCHELP.html";
            wpc = new WebPageControl(this.webBrowser);
            this.webBrowser.AllowWebBrowserDrop = false;
            this.webBrowser.IsWebBrowserContextMenuEnabled = false;
            this.webBrowser.WebBrowserShortcutsEnabled = false;
            this.cmbNameOrID.SelectedIndex = 0;

            // Event register
            this.Load += new EventHandler(FrmWenBrowser_Load);
            this.btnGetText.Click += new EventHandler(btnGetText_Click);
            this.btnWrite.Click += new EventHandler(btnWrite_Click);
            this.btnCommit.Click += new EventHandler(btnCommit_Click);
            // Web Navigate
            this.btnFoward.Click += new EventHandler(btnFoward_Click);
            this.btnBackward.Click += new EventHandler(btnBackward_Click);
            this.btnStop.Click += new EventHandler(btnStop_Click);
            this.btnRefresh.Click += new EventHandler(btnRefresh_Click);
        }

        // Handling
        // Window Create
        void FrmWenBrowser_Load(object sender, EventArgs e)
        {
            // 加载html文件 & 打开网址
            this.webBrowser.Navigate(htmlFileName);
        }
        
        // 单击按钮Get响应
        void btnGetText_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.txtAttributeName.Text != string.Empty)
                {
                    this.txtText.Text = this.cmbNameOrID.Text == "By Name" ? this.wpc.ReadText(this.txtAttributeName.Text)
                        : this.wpc.ReadTextByID(this.txtAttributeName.Text);
                }
            }
            catch
            {
                MessageBox.Show("读取控件文本失败,请检查网页中是否包含" + this.txtAttributeName.Text + "控件!", 
                    "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }
        
        //单击按钮Write响应
        void btnWrite_Click(object sender, EventArgs e)
        {
            try
            {
                if (this.txtAttributeName.Text != string.Empty)
                {
                    this.wpc.WriteText(this.txtAttributeName.Text, this.txtText.Text);
                }
            }
            catch
            {
                MessageBox.Show("读取控件文本失败,请检查网页中是否包含" + this.txtAttributeName.Text + "控件!",
                    "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        // 单击按钮Commit响应
        void btnCommit_Click(object sender, EventArgs e)
        {
            try
            {
                //if (this.txtAttributeName.Text != string.Empty)
                //{
                //    this.wpc.WriteText(this.txtAttributeName.Text, this.txtText.Text);
                //}
                if (this.cmbNameOrID.Text == "By Name")
                {
                    this.wpc.ClickButton("btnCommit");
                }
                else
                {
                    //this.wpc.ClickButtonByID("btnContinue");
                }
            }
            catch
            {
                MessageBox.Show("读取控件文本失败,请检查网页中是否包含" + this.txtAttributeName.Text + "控件!",
                    "错误", MessageBoxButtons.OK, MessageBoxIcon.Error);
            }
        }

        // 网站导航:向前
        void btnFoward_Click(object sender, EventArgs e)
        {
            this.webBrowser.GoForward();
        }

        // 网站导航:向后
        void btnBackward_Click(object sender, EventArgs e)
        {
            this.webBrowser.GoBack();
        }

        // 网站导航:停止
        void btnStop_Click(object sender, EventArgs e)
        {
            this.webBrowser.Stop();
        }

        // 网站导航:刷新
        void btnRefresh_Click(object sender, EventArgs e)
        {
            this.webBrowser.Refresh();
        }

        private void btnImg_Click(object sender, EventArgs e)
        {
            FrmImage img = new FrmImage();
            HtmlElement imgEle = this.webBrowser.Document.GetElementById("imgIBM");
            HtmlElement imgNew = img.wb.Document.CreateElement("IMG");
            imgNew.SetAttribute("src", imgEle.GetAttribute("src"));
            //img.wb.Document.Body.AppendChild(imgNew);
            img.ShowDialog();
        }
    }
}

我的IE9怎么传不了附件的,郁闷~
2011-04-14 14:26
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
回复 4楼 zhoufeng1988
这就是实现我列子的windows窗体程序代码吗?附件可不可以发到我邮箱里呢?我的邮箱是:835425932@
2011-04-14 14:45
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
回复 4楼 zhoufeng1988
谢谢你刚刚给我发的附件啊!但是里面的软件打不开的,我双击后什么都没出现,而且我想vs2010打不开您给的源文件,说是转换失败了!!
2011-04-14 16:21
死亡军团
Rank: 2
等 级:论坛游民
威 望:2
帖 子:166
专家分:20
注 册:2008-11-4
得分:0 
问题还没有得到解决!!有谁能帮帮我吗?
2011-04-15 19:52
woyuwole
Rank: 1
等 级:新手上路
帖 子:6
专家分:0
注 册:2009-3-10
得分:0 
WEBBrowser + IHTMLDOM
2011-05-17 10:06



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-336557-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.045959 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved