IE实例,DocumentCompleted执行太快

时间:2011-08-18 23:54:19

标签: c# .net browser

我在我的程序之外创建一个IE实例,程序找到并正确附加。我设置了我的事件处理程序并告诉程序进入登录屏幕。 DocumentCompleted句柄应该在网页完全加载时触发,但是在新页面出现之前我似乎正在触发..句柄只触发一次(意味着只有一帧?)。

如果我将其修改为直接从登录页面工作,此代码执行正常..我做错了什么?感谢您的任何帮助:)

        Process.Start(@"IESpecial.exe");

        SHDocVw.ShellWindows allBrowsers = new SHDocVw.ShellWindows();
        while (true)
        {
            foreach (SHDocVw.WebBrowser ie in allBrowsers)
            {
                if (ie.LocationURL == "http://website/home.asp")
                {
                    loggingIn = true;
                    webBrowser = ie;
                    webBrowser.DocumentComplete += new SHDocVw.DWebBrowserEvents2_DocumentCompleteEventHandler(webBrowser1_DocumentCompleted);
                    webBrowser.Navigate("http://website/logon.asp");
                    return;
                }
            }
            Thread.Sleep(10);
        }
    }

        private void webBrowser1_DocumentCompleted(object pDisp, ref object URL)
    {
        //we are attempting to log in
        if (loggingIn)
        {
            mshtml.HTMLDocumentClass doc = (mshtml.HTMLDocumentClass)webBrowser.Document;
            mshtml.HTMLWindow2 window = (mshtml.HTMLWindow2)doc.IHTMLDocument2_parentWindow;

            doc.getElementById("Username").setAttribute("value", "MLAPAGLIA");
            doc.getElementById("Password").setAttribute("value", "PASSWORD");
            window.execScript("SubmitAction()", "javascript");
            loggingIn = false;
            return;
        }

0 个答案:

没有答案