2

我目前正在编写 ac# 窗体应用程序,它启动 Internet Explorer 的实例,导航到某个 Intranet 页面,填写表格并提交该表格。

这是一些代码:

int state = 0;

SHDocVw.InternetExplorer ie = new SHDocVw.InternetExplorer();
ie.DocumentComplete += ie_DocumentComplete;
ie.Visible = false;

string url = "http://xch:8080/intro/open/index.jsp";
ASCIIEncoding Encode = new ASCIIEncoding();
byte[] post = Encode.GetBytes("check=Agd3458HD3jhf");
string postHeaders = "Content-Type: application/x-www-form-urlencoded";
state = 1;
ie.Navigate2(url, null, null, post, postHeaders);

private void ie_DocumentComplete(object pDisp, ref object URL)
{
    if (state == 1)
    {
        //call a function that fills out the form, submits it and sets "state" to 2
    }
    else if (state == 2)
    {
        ie.Visible = true;
    }
}

基本上就是这样。但是 url 中的“xch”似乎出现了一些重大问题。当我使用 IP 地址时,一切都很好。使用“xch”,事情变得一团糟:

  • 浏览器窗口已显示在“ie.Navigate2(...)”上
  • DocumentComplete永远无法到达事件处理程序
  • 当我尝试访问其中的HTMLDocument或某些Elements内容时,会引发异常

我的客户坚持在地址栏中使用“xch”而不是 IP 地址,我的第一个想法是,这没关系,因为浏览器可以通过任何方式访问该页面。但显然我错了:/我还应该提到,当我使用“xch”时,问题并不总是发生。到目前为止,它只发生在具有 IE9 的 Windows 7 PC 和没有管理员权限的用户上。所以,我的问题是,如果其他人有类似的问题,我能做些什么来缩小问题的范围?

4

0 回答 0