因为公司上下班老是要进行登录,
而忘记登录就扣两个小时的工作时间。
所以想编一个程序,定时登录网站
(填写用户名,密码(这些都不用验证)然后提交,进入下一个页面点击某个按钮,最后进入登记页面点击提交)。
请高手说下方法,最好有源码。
头次发贴,希望能解决。

解决方案 »

  1.   

    自己写个HTML文档,里面一个表单.自动提交.把安全性降低些.电脑定时开机. 把HTML放到启动组里就行了....
      

  2.   

    自己写个HTML文档,里面一个表单.自动提交.把安全性降低些. 电脑定时开机.   把HTML放到启动组里就行了....
    ===============================================这个不会操作,能具体点吗?
      

  3.   

    如果是XP系统,那么可以把浏览器的主页设置为你要登录的网页,然后通过XP的任务计划来实现(每天一次,时间自己设定);
      

  4.   

    http://www.3800hk.com/Article/os/XP/jcjcxp/2005-08-06/Article_50783.html
      

  5.   

    发送一个 Internet Explorer/浏览器 快捷方式到桌面,在任务计划里浏览到这个快捷方式就可以;
      

  6.   

    写一个服务,定时启动一个WinForm程序,画面用WebBrowser控件,自动登录搜一下就有答案了
      

  7.   

    sqllong的建议虽然不错,
    但是我希望用一个程序,到了时间的话就自动帮我登录。
    好像用任务计划的话,只能弹出IE,也就是那个网站,而没法登录。
      

  8.   

    这个啊,我最擅长,呵呵
    我写了一个类,专门用来提交表单,GET、POST,上传下载文件都可以,除了解析html外,浏览器能做的事情,这个类都可以完成。我空间也有个VB.NET版的,但是不完善。要C#版的可以加我qq281066383,我有空会发布到csdn空间
      

  9.   

    那好啊,谢谢ls了。我的qq451326731。但是公司不能上外网,包括qq。周末加你把。
    或者你发邮件到[email protected].感激不尽。
      

  10.   

    1 需要跟踪下连接
    2 需要知道提交内容
    3 httpwebrequest 和httpwebresponse 可以帮你把数据提交
      

  11.   

    ls的兄弟的想法,我最早就想过。
    但那样定位不准,容易出现问题。
    况且若能用c#给实现,不是更好吗?
      

  12.   

    解析html
    先用sniffer查包
    然后用 get http://www.xxx.com/
    HTTP/1.0
    Accept: */*
    Referer: http://www.xxx.com/
    Accept-Language: zh -cn
    Accept-Encoding: gzip , deflate
    User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)
    Host: www.xxx.com
    Connection: Keep -Alive
    Cookie: name=xxx,pwd=xxx然后自己写吧
      

  13.   

    实现http协议的类已经发布到我空间,请添加到你的项目,使用方法见类说明
    http://blog.csdn.net/wo789/archive/2007/11/13/1882176.aspx要提交什么数据到服务器可以用sniffer之类的软件抓html包分析,也可以自己在浏览器中查看网页源代码找到要提交的表单,然后用我的那个类来帮你提交。
      

  14.   


         public static string GetPage(string url, string postData,string encodeType,out string err)      {          Stream outstream = null;          Stream instream = null;          StreamReader sr = null;          HttpWebResponse response = null;          HttpWebRequest request = null;          Encoding encoding = Encoding.GetEncoding(encodeType);          byte[] data = encoding.GetBytes(postData);          // 准备请求...          try          {                  // 设置参数               request = WebRequest.Create(url) as HttpWebRequest;               CookieContainer cookieContainer = new CookieContainer();               request.CookieContainer = cookieContainer;               request.AllowAutoRedirect = true;               request.Method = "POST";               request.ContentType = "application/x-www-form-urlencoded";               request.ContentLength = data.Length;               outstream = request.GetRequestStream();               outstream.Write(data,0,data.Length);               outstream.Close();               //发送请求并获取相应回应数据               response = request.GetResponse() as HttpWebResponse;               //直到request.GetResponse()程序才开始向目标网页发送Post请求               instream = response.GetResponseStream();               sr = new StreamReader( instream, encoding );               //返回结果网页(html)代码 string content = sr.ReadToEnd();               err = string.Empty;               return content;          }          catch(Exception ex)          {               err = ex.Message;               return string.Empty;          } }   
      

  15.   

    我用zxkid  ◇★大鳄鱼◆☆ <Build a evil new world> 的方法实现了。
    不过还是很谢谢楼上的兄弟。我写的代码如下。
     private void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
            {
                HtmlElement ClickBtn = null;
                HtmlDocument doc = webBrowser1.Document;
                for (int i = 0; i < doc.All.Count; i++)
                {
                    //MessageBox.Show(doc.All[i].TagName.ToUpper());
                    if (doc.All[i].TagName.ToUpper().Equals("INPUT"))
                    {
                        if (doc.All[i].Name.ToUpper().IndexOf("PWD") >= 0)
                        {
                            MessageBox.Show(doc.All[i].Name.ToUpper());
                            doc.All[i].InnerText = "password";
                        }
                        switch (doc.All[i].Name.ToUpper())
                        {
                            case "USERNAME":
                                doc.All[i].InnerText = "username";
                                break;
                            case "PWD":
                                doc.All[i].InnerText = "password";
                                break;
                            case "Button":
                                ClickBtn = doc.All[i];        //提交按钮
                                break;
                        }
                    }
                }
                ClickBtn.InvokeMember("Click");   //执行按扭操作             
            }
      

  16.   

    现在的问题是第二个页面的东西是这样的一个东西
    <td width="100"><p align=center><font size=2><A href=user_login.asp class=p4>考勤</td> 
    程序抓取不到这个东西。
      

  17.   

    引用“公司的网站是固定的, 我是要一个东西能帮我输入 用户名,密码,点击提交按钮             ——》 下一个页面,选择其中的某个选项     ——》 下一个页面     登记”引用“也就是没法模拟的点击   “考勤”   ”
    看来你还没明白!
    点击按钮也是提交表单,跟你直接用URL提交表单有什么区别?如果公司登陆提交方式是post(相当有可能,因为get方式会暴露你的密码),你需要一个拆包工具(如:httpwatch)。
    然后可以模拟提交表单,js、vb脚本都能实现,用java或c#也行。
    1   需要跟踪下连接 
    2   需要知道提交内容 
    3   httpwebrequest   和httpwebresponse   可以帮你把数据提交
    ”差不多就是这个意思。
      

  18.   

    搞那么复杂干吗,还要编程
    找个软件直接录一下就是了,比如 AutoIt
      

  19.   

    我有和LZ类似的一个需求,使用httpwebrequest,但是登录成功后,再次提交访问内部一个页面时,登录信息丢失了,谁知道为什么啊?
      

  20.   

    用socket发http数据包即可。
      

  21.   

    http://bbs.gogolike.com/showforum-12-1.aspx
    这里是前一阵我写类似代码是收集的一些资料.完全可以完成楼主需要的功能.
      

  22.   

    http://topic.csdn.net/u/20070627/17/a5ce402b-f73c-4944-8a00-085bb09a85fe.html
    这里的登录模块