我的代码如下:
Private Sub Command2_Click()
    Dim objDoc      As MSHTML.HTMLDocument
    Dim objForm     As MSHTML.HTMLFormElement
    Dim szHTML      As String
    
    Set objDoc = New MSHTML.HTMLDocument
    '将HTML文件数据到字符串变量
    szHTML = LoadHtmlFromFile("c:\test.htm")
    '将HTML字符串写入Document对像
    CallByName objDoc, "write", VbMethod, szHTML
    '获取表单对像
    Set objForm = objDoc.getElementById("表单名")
    '.......这里对表单内的控件操作
    
    '.........................
    '提交表单
    objForm.submit      '!!!    为什么执行到这一行后,我的程序里无缘无故弹个IE窗口出来?
                        '       这不是我想要的.我想submit()后,
                        '       取得MSHTML处理过的数据,再自己用Socket提交
    
    Set objForm = Nothing
    Set objDoc = Nothing
End Sub

解决方案 »

  1.   

    看这样符合你的要求吗?引用 Microsoft internet controls
    Private Sub Command1_Click()
         
        Dim IE As New InternetExplorer    Dim objDoc     As MSHTML.HTMLDocument
        Dim objForm     As MSHTML.HTMLFormElement
        Dim szHTML      As String
        
        IE.Visible = False
        IE.navigate "C:\test.htm"
        
        Do Until IE.readyState = READYSTATE_COMPLETE
            DoEvents
        Loop
        
        'Set objDoc = New MSHTML.HTMLDocument
        Set objDoc = IE.document
        Set objForm = objDoc.Forms("我的表单名")
        '.......这里对表单内的控件操作
        
        '.........................
        '提交表单
        objForm.submit      '!!!    为什么执行到这一行后,我的程序里无缘无故弹个IE窗口出来?
                            '       这不是我想要的.我想submit()后,
                            '       取得MSHTML处理过的数据,再自己用Socket提交
        
        Set objForm = Nothing
        Set objDoc = Nothing
        Set IE = Nothing
    End Sub
      

  2.   

    不行,我直接用MSHTML提交就是不想用WebBrowser,你这样直接创建了IE进程.系统开销太大
      

  3.   

    那你还不如直接根据HTTP协议自己构造头信息
      

  4.   

    http://www.never-online.net/blog/article.asp?id=139
      
    *****************************************************************************
    欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) 
    http://feiyun0112.cnblogs.com/