读书人

近来做了个回帖工具大家看看有什么毛

发布时间: 2012-09-19 13:43:54 作者: rapoo

最近做了个回帖工具,大家看看有什么毛病
新手第一次做项目,以前学校的都是和同学一起做的,这次可以算独立完成,不会的问百度,大多数功能都实现了
现在没有解决的就是界面循环回帖的假死,和操作失误提示不会写,异步找了几天也没写出来,
想验证注册机但是也没实现,想开个登录框,是否是我设置的帐号密码也没写,但是程序可以用,现在大神帮我修改修改整合整合,提提意见,谢谢大家了。

C# code
        #region 获取网页回复按钮        private void button1_Click(object sender, EventArgs e)        {            HtmlElement htmlBtn = webBrowser1.Document.GetElementById("imageField");            htmlBtn.InvokeMember("click");        }                String huifucishu = "";//初始化回复次数        #endregion        #region 文本1打印        private void button2_Click(object sender, EventArgs e)        {            try            {                HtmlElement tbUserid = webBrowser1.Document.All["post_body"];                string Run = "";                Run = textBox1.Text;                //文字打印                tbUserid.SetAttribute("value", Run);                tbUserid.InvokeMember("click");                button1_Click(sender, e);                //3秒不可点击                huifu1.Enabled = false;                huifu2.Enabled = false;                Timer1.Interval = 3100;//3.1秒                Timer1.Enabled = true;                huifu2.BringToFront();                //回复次数计算                huifucishu = label8.Text = (Convert.ToInt32(label8.Text) + 1).ToString();            }            catch (Exception)            {                MessageBox.Show("你日你妹,还没加载完毕呢");            }        }        #endregion        #region 文本2打印        private void button3_Click(object sender, EventArgs e)        {            try            {                HtmlElement tbUserid = webBrowser1.Document.All["post_body"];                string Run = "";                Run = textBox2.Text;                tbUserid.SetAttribute("value", Run);                tbUserid.InvokeMember("click");                button1_Click(sender, e);                //3秒不可点击                huifu1.Enabled = false;                huifu2.Enabled = false;                Timer1.Interval = 3100;//3.1秒                Timer1.Enabled = true;                huifu1.BringToFront();                //回复次数                huifucishu = label8.Text = (Convert.ToInt32(label8.Text) + 1).ToString();            }            catch (Exception)            {                MessageBox.Show("你日你妹,急啥急,还没加载完毕呢!");            }        }        #endregion        #region 大量重复操作判断        private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)        {            //this.webBrowser1.ScriptErrorsSuppressed = true;            if (webBrowser1.ReadyState < WebBrowserReadyState.Complete || webBrowser1.Url.ToString() == LastUrl) return;            LastUrl = webBrowser1.Url.ToString();            //执行正常流程代码…………        }        private string _LastUrl;        public string LastUrl        {            get            {                return _LastUrl;            }            set            {                _LastUrl = value;            }        }        #endregion        #region 网页正在加载、请勿操作        private void webBrowser1_Navigating(object sender, WebBrowserNavigatingEventArgs e)        {            label3.Text = "网页正在加载、请勿操作";            jishiqi1.Enabled = true;        }        //页面加载完成、可以操作了        private void timer1_Tick(object sender, EventArgs e)        {            if (webBrowser1.ReadyState == WebBrowserReadyState.Complete != webBrowser1.IsBusy == false)            {                label3.Text = "页面加载完成、可以操作了";                jishiqi1.Enabled = false;            }        }        #endregion        #region 按钮3.1秒结束不可点        private void timer2_Tick(object sender, EventArgs e)        {            button1.Enabled = true;            Timer1.Stop();            huifu1.Enabled = true;            Timer1.Stop();            huifu2.Enabled = true;            Timer1.Stop();        }        #endregion        #region 按钮切换置顶        private void button4_Click(object sender, EventArgs e)        {            huifu2.BringToFront();            huifu1.SendToBack();        }        #endregion        #region 转到网址事件        private void zhuandao_Click(object sender, EventArgs e)        {            webBrowser1.Navigate(textBox3.Text);        }        #endregion        #region 按钮停止事件        private void timer3_Tick(object sender, EventArgs e)        {            timer3.Stop();        }        #endregion        #region 自动回帖事件        private void Aanniu_Click(object sender, EventArgs e)        {            try            {                do                {                    for (int i = 0; i != Convert.ToInt32(cancelAsyncButton.Text); i++)                    {                        //调用按钮2                        button2_Click(sender, e);                        //间隔3.1秒执行                        Thread.Sleep(3100);                        //调用按钮3                        button3_Click(sender, e);                        //间隔3.1秒执行                        Thread.Sleep(3100);                    }                } while (false);            }            catch (Exception)            {                MessageBox.Show("请设置回复次数除2的数字");            }        }        #endregion        #region 自动回帖说明        private void button2_Click_1(object sender, EventArgs e)        {            MessageBox.Show("自动回帖程序会无响应、实际程序仍然在运行当中,可以设置最大值为99999。点击一次回复2楼,设置次数为90次的话,实际回复了180次", "自动回帖说明");        }        #endregion        #region 无责任提示        private void Form1_Load(object sender, EventArgs e)        {            MessageBox.Show("程序仅为测试专用、请务作非法用途", "程序说明");            this.toolTip1.SetToolTip(this.textBox1, "支持回车换行的哦");            this.toolTip1.SetToolTip(this.textBox2, "请勿和回复内容1相同");            //窗体显示特效            Opacity = 0.0; //窗体透明度为0            fadeTimer.Start(); //计时开始        }        #endregion        #region 透明度隐出隐现        private bool showing = true;        private void fadeTimer_Tick(object sender, EventArgs e)        {            double d = 0.10;            if (showing)            {                if (Opacity + d >= 1.0)                {                    Opacity = 1.0;                    fadeTimer.Stop();                }                else                {                    Opacity += d;                }            }            else            {                if (Opacity - d <= 0.0)                {                    Opacity = 0.0;                    fadeTimer.Stop();                }            }        }        #endregion 



[解决办法]
你这不假死才怪,跟线程异步没有半毛钱关系
[解决办法]
开个线程干那些费时的操作,假死的问题应该可以解决.
有空可以研究下System.Threading.Thread 类
Thread td = new Thread(<干事儿的方法名>);
td.Start();
[解决办法]
不太喜欢灌水机制造者。
[解决办法]
while(false)应该是立马退出了吧————如果C#语法规则和C++一样的话。
[解决办法]
MessageBox.Show("你日你妹,还没加载完毕呢");
吭爹的提示
[解决办法]
你日你妹,还没加载完毕呢

读书人网 >C#

热点推荐