HtmlElement btnSubmit = webBrowser1.Document.All["un_submit"];
            if (btnSubmit == null)
                return; 
            btnSubmit.InvokeMember("click");            

解决方案 »

  1.   

    没有分了,借楼主的帖子问个问题我弄了一个程序运行时间计数,1天都是好好的,运行了3天,今天居然出现倒计时了
     //运行时间计数器
            private void timer1_Tick(object sender, EventArgs e)
            {
     
                long curTickValue = Environment.TickCount;
                long difference = curTickValue - compuTime;
                long computerDays, computerHours, computerMinutes, computerSeconds;
                computerDays = (difference / (86400 * 999)) % 24;
                computerHours = (difference / (3600 * 999)) % 24;
                computerMinutes = (difference / (60 * 999)) % 60;
                computerSeconds = (difference / 999) % 60;
                label12.Text = "运行:" + computerDays.ToString() + "天" + computerHours.ToString() + "小时" + computerMinutes.ToString() + "分" + computerSeconds.ToString() + "秒";
            }
    正常是:运行1天10小时5分10秒,这样,结果今天看,成了:运行-22天2小时45分10秒这样,而是时间是在倒着走,请问是哪里计算错误了。
      

  2.   

    compuTime 这个是啥?发出来看看
      

  3.   


     HtmlElement btnSubmit = webBrowser1.Document.All["un_submit"];
                if (btnSubmit == null)
                    return; 
                btnSubmit.InvokeMember("onclick"); 试试 
      

  4.   


    long compuTime;
            private void Form1_Load(object sender, EventArgs e)
            {
                compuTime = Environment.TickCount;
            }
    //运行时间计数器
            private void timer1_Tick(object sender, EventArgs e)
            {
     
                long curTickValue = Environment.TickCount;
                long difference = curTickValue - compuTime;
                long computerDays, computerHours, computerMinutes, computerSeconds;
                computerDays = (difference / (86400 * 999)) % 24;
                computerHours = (difference / (3600 * 999)) % 24;
                computerMinutes = (difference / (60 * 999)) % 60;
                computerSeconds = (difference / 999) % 60;
                label12.Text = "运行:" + computerDays.ToString() + "天" + computerHours.ToString() + "小时" + computerMinutes.ToString() + "分" + computerSeconds.ToString() + "秒";
            }
      

  5.   

    HtmlElementCollection btt1 = doc.GetElementsByTagName("input");
    改成:
    HtmlElement btt1 = doc.GetElementById(“input”);看我的部分代码:
    //网页加载完毕,开始工作
                HtmlDocument htmlDoc = webBrowser.Document;
                Int32 aa = 0;
                Int32 lc = Convert.ToInt32(textBox6.Text);//已发楼层
                Int32 gs = Convert.ToInt32(textBox7.Text);//已发礼包个数
                String m = String.Empty;
                foreach (String k in arr)
                {
                    m = arr1[i];
                    if (check(m) == false)//检测当前用户是否已经发送过了
                    {
                        HtmlElement input = htmlDoc.GetElementById(k);
                        if (input != null)
                        {
                            aa = Convert.ToInt32(GetOffset(input).Y);//得到元素坐标
                            htmlDoc.Window.ScrollTo(0, aa - 360);//设置坐标
                            Delay(2000);
                            if (MessageBox.Show("按是发送,按否跳过", "提示", MessageBoxButtons.YesNo) == DialogResult.Yes)
                            {
                                input.InvokeMember("click");
      

  6.   

    额,如果btnSubmit.InvokeMember("click");    不行的话,那么有可能是页面做了防止webBroswer自动点击的处理,那么只好用sendMessage调用windows API 来模拟鼠标点击了,
    参考这个例子:http://blog.csdn.net/chen504390172/article/details/18525823
      

  7.   


    感觉计算没错,会不会是你的系统已经运行很多天了,然后超出了long 类型的范围,所以得到的是负值
      

  8.   

    服务器是运行了很多天了,基本上很少重启过,怎么解决呢
    那么就不要用Environment.TickCount了,他是int 类型,你又不经常重启,很容易超出范围的,直接用dateTime来计算时间好了
    DateTime t1;
    DateTime t2;
     private void Form1_Load(object sender, EventArgs e)
            {
                t1 = DateTime.Now;
            }
    //运行时间计数器
            private void timer1_Tick(object sender, EventArgs e)
            {
                t2 = DateTime.Now;
                TimeSpan ts= t2 - t1;
                 label12.Text = "运行:" + ts.Days + "天" + ts.Hours + "小时" + ts.Minutes + "分" + ts.Seconds + "秒";           
            }
      

  9.   

    服务器是运行了很多天了,基本上很少重启过,怎么解决呢
    那么就不要用Environment.TickCount了,他是int 类型,你又不经常重启,很容易超出范围的,直接用dateTime来计算时间好了
    DateTime t1;
    DateTime t2;
     private void Form1_Load(object sender, EventArgs e)
            {
                t1 = DateTime.Now;
            }
    //运行时间计数器
            private void timer1_Tick(object sender, EventArgs e)
            {
                t2 = DateTime.Now;
                TimeSpan ts= t2 - t1;
                 label12.Text = "运行:" + ts.Days + "天" + ts.Hours + "小时" + ts.Minutes + "分" + ts.Seconds + "秒";           
            }
    实在感谢,已经用上了,不过不好意思啊,我不能给你分。
    也多谢楼主,祝楼主的问题早日解决,不知道楼主用我发的那个方法有用没有,我做的那个项目,也是模拟点击的。