我想做一个自动登录的软件,就是提前填写好网址,登录帐号和密码,然后在软件中双击相应的键,就可以自动登录,比如自动登录163邮箱.
请问我该怎么把用户提前输入软件中的账号和密码自动填到163登录界面上相应的文本框内?

解决方案 »

  1.   

    引入2个COM组件:
    Microsort HTML Object Library
    Microsort Internet Control
                foreach (InternetExplorer temp in new ShellWindowsClass()) //获取IE窗口
                {
                    string name = Path.GetFileName(temp.FullName).ToLower();
                    if (name == "iexplore.exe") //判断进程是否为IE
                    {
                        HTMLInputButtonElement button1 = (HTMLInputButtonElement)(temp.Document as HTMLDocument).getElementById("button1");     //从document里获取按钮
                        button1.click();         //模拟按钮单击
                    }
                }测试HTML文件:
    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
    <html xmlns="http://www.w3.org/1999/xhtml">
    <head>
    <meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
    <title>无标题文档</title>
    </head>
    <script language="javascript">
    <!--
     function ShowMsg()
     {
       alert("按钮被点击!");
     }
    -->
    </script>
    <body>
    <input type="button" id="button1" value="点击" onclick="ShowMsg()" />
    </body>
    </html>最好查看下mshtml(Microsort HTML Object Library)命名空间里的类,很有帮助!
      

  2.   

    ...请问LS, 如何判断用户是否打开了"IE临时文件夹"???这个有没有办法实现???新年快乐...^o^
      

  3.   

    获取窗口标题是Temporary Internet Files的窗口,不怎么好
      

  4.   

    我怎么没找到这两个组件?我用的是.net framework 2.0 + VS2005
    Microsort   HTML   Object   Library 
    Microsort   Internet   Control 
    另外谁给我讲一讲其中的原理啊?
    二楼大哥的代码我看不懂啊
      

  5.   

    添加引用,在COM栏里
    原理就是找到IE窗口里的控件,设置控件的文本,然后模拟点击,都有直接的方法操作的。
    IE里的控件不是WINDOWS控件,是COM里的类
      

  6.   

    哦,谢谢楼上的大哥,
    我现在已经添加了那两个组件了,可是二楼的代码里的一些InternetExplorer Path 等关键字在VS里不被识别,还需要加什么命名空间吗?
      

  7.   

    using mshtml;
    using SHDocVw;
    using System.IO;
      

  8.   

    to: jx0797 ...我现在用的办法94判断窗口标题是否等于Temporary Internet Files...可是临时文件夹是可以修改的...这种情况该怎么判断???to: lz ..其实1楼的代码并不复杂, 如果您看不懂, 可以直接复制运行看看效果...之后您自然会明白...^o^
      

  9.   

    我在一个应用程序中添加如下代码:
    private void button1_Click(object sender, EventArgs e)
            {
                Process.Start("iexplore.exe", "file:///D:/UserKD/桌面/a.html");            foreach (InternetExplorer temp in new ShellWindowsClass())
                {
                    string name = Path.GetFileName(temp.FullName).ToLower();
                    if (name == "iexplore.exe")
                    {
                        HTMLInputButtonElement button1 = (HTMLInputButtonElement)(temp.Document as HTMLDocument).getElementById("Button1");
                        button1.click();
                    }            }
            }
    然后将网页保存在桌面上,程序运行后网页是打开了,但并不能自动点击按扭啊?
      

  10.   

    用Environment.GetFolderPath 方法获取到临时目录名字,然后在判断,应该可以