'连接URL
Function OpenURL(ByVal sUrl As String) As String
    On Error Resume Next
    Dim hOpen As Long
    Dim hOpenUrl As Long
    Dim bDoLoop As Boolean
    Dim bRet As Boolean
    Dim sReadBuffer As String
    Dim lNumberOfBytesRead As Long
    Dim sBuffer As String
    hOpen = InternetOpen(vbNullString, INTERNET_OPEN_TYPE_DIRECT, vbNullString, vbNullString, 0)
    hOpenUrl = InternetOpenUrl(hOpen, sUrl, vbNullString, 0, INTERNET_FLAG_RELOAD, 0)
    bDoLoop = True
    While bDoLoop
        sReadBuffer = Space$(2048)
        bRet = InternetReadFile(hOpenUrl, ByVal sReadBuffer, Len(sReadBuffer), lNumberOfBytesRead)
        sBuffer = sBuffer & Left$(sReadBuffer, lNumberOfBytesRead)
        If Not CBool(lNumberOfBytesRead) Then bDoLoop = False
    Wend
    If hOpenUrl <> 0 Then InternetCloseHandle (hOpenUrl)
    If hOpen <> 0 Then InternetCloseHandle (hOpen)
    OpenURL = Trim(sBuffer)
End Function

解决方案 »

  1.   

    procedure   TForm1.Button1Click(Sender:   TObject);  
      var  
          hNet,hServer:   HINTERNET;  
          strURL:   String;  
      begin  
          strURL   :=   'http://www.yahoo.net';  
       
          {   Open   an   internet   session   }  
          hNet   :=   InternetOpen('Project1',   //   Agent  
                                                    INTERNET_OPEN_TYPE_PRECONFIG,   //   ①AccessType  
                                                    nil,   //   ProxyName  
                                                    nil,   //   ProxyBypass  
                                                    0);     //   or   INTERNET_FLAG_ASYNC   /   INTERNET_FLAG_OFFLINE  
          {Agent   contains   the   name   of   the   application   or   entity   calling   the    
            Internet   functions}  
       
          {   See   if   connection   handle   is   valid   }  
          if   hNet   =   nil   then  
          begin  
              ShowMessage('Unable   to   get   access   to   WinInet.Dll');  
              Exit;    
          end;  
       
          {   Connect   to   the   Http   Server   }  
          hServer   :=   InternetOpenURL(hNet,                   //   Handle   from   InternetOpen  
                                                                PChar(strURL),   //   Http   server  
                                                                nil,   //header  
                                                                0,       //headers   Length  
                                                                INTERNET_FLAG_RAW_DATA,//   ②flag  
                                                                0);     //   User   defined   number   for   callback  
          if   hServer   =   nil   then  
          begin    
              InternetCloseHandle(hNet);    
              ShowMessage(Format('Host   "%s"   is   not   available',[strURL]));  
              Exit;    
          end  
          else   begin  
              ShowMessage(Format('Host   "%s"   is   OK',[strURL]));  
          end;  
          {...}  
      end;  
       
      対上述的説明:  
      ①AccessType  
      {   access   types   for   InternetOpen   }  
      const  
          INTERNET_OPEN_TYPE_PRECONFIG                 =   0;     {   use   registry   configuration   }  
          {$EXTERNALSYM   INTERNET_OPEN_TYPE_PRECONFIG}  
          INTERNET_OPEN_TYPE_DIRECT                       =   1;     {   direct   to   net   }  
          {$EXTERNALSYM   INTERNET_OPEN_TYPE_DIRECT}  
          INTERNET_OPEN_TYPE_PROXY                         =   3;     {   via   named   proxy   }  
          {$EXTERNALSYM   INTERNET_OPEN_TYPE_PROXY}  
          INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY     =   4;   {   prevent   using   java/script/INS   }  
          {$EXTERNALSYM   INTERNET_OPEN_TYPE_PRECONFIG_WITH_NO_AUTOPROXY}  
       
      ②flag  
      {   flags   for   InternetOpenUrl:   }  
          INTERNET_FLAG_RAW_DATA   =   $40000000;     {   receive   the   item   as   raw   data   }  
          {$EXTERNALSYM   INTERNET_FLAG_RAW_DATA}  
          INTERNET_FLAG_EXISTING_CONNECT   =   $20000000;   {   do   not   create   new   connection   object   }  
          {$EXTERNALSYM   INTERNET_FLAG_EXISTING_CONNECT}   
      

  2.   

    在问下,返回的值怎么提取? hServer里吗?
      

  3.   

    你吧这个procedure改造成FUNCTION嘛