Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1288 connectés 

 


Dernière réponse
Sujet : [Visual C++] Connexion à ne URL
dkomputer URLDownloadToFile(NULL,url_char,name_to_save_char,0,NULL))
avec
#include <urlmon.h>
 
Downloads bits from the Internet and saves them to a file.
 
Syntax
 
HRESULT URLDownloadToFile(
    LPUNKNOWN pCaller,
    LPCTSTR szURL,
    LPCTSTR szFileName,
    DWORD dwReserved,
    LPBINDSTATUSCALLBACK lpfnCB
);
 
Parameters
 
pCaller  
Address of the controlling IUnknown interface of the calling ActiveX® component (if the caller is an ActiveX component). If the calling application is not an ActiveX component, this value can be set to NULL. Otherwise, the caller is a COM object that is contained in another component (such as an ActiveX control within the context of an HTML page). This parameter represents the outermost IUnknown of the calling component. The function attempts the download within the context of the ActiveX client framework and allows the caller's container to receive callbacks on the progress of the download.  
szURL  
Address of a string value containing the URL to be downloaded. This cannot be set to NULL.  
szFileName  
Addrss of a string value containing the name of the file to create for bits that come from the download.  
dwReserved  
Reserved for future use. Must be zero.  
lpfnCB  
Address of the caller's IBindStatusCallback interface. URLDownloadToFile calls this interface's IBindStatusCallback::OnProgress method on a connection activity, including the arrival of data. IBindStatusCallback::OnDataAvailable is never called. Implementing IBindStatusCallback::OnProgress allows a caller to implement a user interface or other progress monitoring functionality. It also allows the download operation to be canceled by returning E_ABORT from the IBindStatusCallback::OnProgress call. This can be set to NULL.  
Return Value
 
Returns one of the following values:
 
E_OUTOFMEMORY The buffer length is invalid or there was insufficient memory to complete the operation.  
S_OK The operation succeeded.  
 
Remarks
 
The client can choose to be notified of progress through a notification callback.
 
Function Information
 
Windows NT Use version 4.0. Implemented as ANSI and Unicode functions.  
Windows Use Windows 95 and later. Implemented as ANSI and Unicode functions.  
Header Urlmon.h  
Import Library Urlmon.lib  
Minimum availability Internet Explorer 3.0

Votre réponse
Nom d'utilisateur    Pour poster, vous devez être inscrit sur ce forum .... si ce n'est pas le cas, cliquez ici !
Le ton de votre message                        
                       
Votre réponse


[b][i][u][strike][spoiler][fixed][cpp][url][email][img][*]   
 
   [quote]
 

Options

 
Vous avez perdu votre mot de passe ?


Vue Rapide de la discussion
dkomputer URLDownloadToFile(NULL,url_char,name_to_save_char,0,NULL))
avec
#include <urlmon.h>
 
Downloads bits from the Internet and saves them to a file.
 
Syntax
 
HRESULT URLDownloadToFile(
    LPUNKNOWN pCaller,
    LPCTSTR szURL,
    LPCTSTR szFileName,
    DWORD dwReserved,
    LPBINDSTATUSCALLBACK lpfnCB
);
 
Parameters
 
pCaller  
Address of the controlling IUnknown interface of the calling ActiveX® component (if the caller is an ActiveX component). If the calling application is not an ActiveX component, this value can be set to NULL. Otherwise, the caller is a COM object that is contained in another component (such as an ActiveX control within the context of an HTML page). This parameter represents the outermost IUnknown of the calling component. The function attempts the download within the context of the ActiveX client framework and allows the caller's container to receive callbacks on the progress of the download.  
szURL  
Address of a string value containing the URL to be downloaded. This cannot be set to NULL.  
szFileName  
Addrss of a string value containing the name of the file to create for bits that come from the download.  
dwReserved  
Reserved for future use. Must be zero.  
lpfnCB  
Address of the caller's IBindStatusCallback interface. URLDownloadToFile calls this interface's IBindStatusCallback::OnProgress method on a connection activity, including the arrival of data. IBindStatusCallback::OnDataAvailable is never called. Implementing IBindStatusCallback::OnProgress allows a caller to implement a user interface or other progress monitoring functionality. It also allows the download operation to be canceled by returning E_ABORT from the IBindStatusCallback::OnProgress call. This can be set to NULL.  
Return Value
 
Returns one of the following values:
 
E_OUTOFMEMORY The buffer length is invalid or there was insufficient memory to complete the operation.  
S_OK The operation succeeded.  
 
Remarks
 
The client can choose to be notified of progress through a notification callback.
 
Function Information
 
Windows NT Use version 4.0. Implemented as ANSI and Unicode functions.  
Windows Use Windows 95 and later. Implemented as ANSI and Unicode functions.  
Header Urlmon.h  
Import Library Urlmon.lib  
Minimum availability Internet Explorer 3.0
Drums Merci bcp pour toutes ces précieuses infos... J'ai pas encore testé !
Flying Voilà encore une autre méthode en utilisant les sockets au lieu du controle activeX WebBrowser.
J'ai pas mis les #include ... si quelqu'un en a besoin, je les poste.
 
LPCTSTR pszURL;
CSession session(_T("Nom de la session" ), dwAccessType);
CHttpConnection* pServer = NULL;
CHttpFile* pFile = NULL;
CString strServerName, strObject;
INTERNET_PORT nPort;
DWORD dwServiceType;
DWORD dwRet;
 
if (!AfxParseURL(pszURL, dwServiceType, strServerName, strObject, nPort) ||
 (dwServiceType != INTERNET_SERVICE_HTTP))
{
 // Parsing incorrect
}
pServer = session.GetHttpConnection(strServerName, nPort);
pFile = pServer->OpenRequest(CHttpConnection::HTTP_VERB_GET,
  strObject, NULL, 1, NULL, NULL, dwHttpRequestFlags);
pFile->AddRequestHeaders(szHeaders);
pFile->SendRequest();
 
// Transfert ok ?
pFile->QueryInfoStatusCode(dwRet);
if (dwRet != 200)
{
 // Erreur
}
 
// Transfère le fichier lu dans un CString
CString m_strHtml;
CString CR = "\r\n";
CString strbuffer = "";
while (pFile->ReadString(strbuffer))
 m_strHtml = m_strHtml + strbuffer + CR;
 
pServer->Close();
pFile->Close();
session.Close();
 
__________________
 
Oups...oublié
Définir une classe :
CSession::CSession(LPCTSTR pszAppName, int nMethod)
: CInternetSession(pszAppName, 1, nMethod)
{
}
 
et les variables ci-dessous :
DWORD dwAccessType = PRE_CONFIG_INTERNET_ACCESS;
DWORD dwHttpRequestFlags = INTERNET_FLAG_EXISTING_CONNECT |  
INTERNET_FLAG_NO_AUTO_REDIRECT | INTERNET_FLAG_RELOAD;
TCHAR szHeaders[] = "";

 

[edit]--Message édité par Flying--[/edit]

Flying Méthode avec WebBrowser control et MFC :
 
//////////////////////////////////////////////////////////////////////
// Transfère dans une variable CSTRING le contenu de la page Web //
//////////////////////////////////////////////////////////////////////
 
CString* CNM_CLIENTDlg::GetHTML()
{
 IUnknown* pUnk;
 LPDISPATCH lpDisp;
 HRESULT hr;
 IHTMLDocument2* pDocument;
 IDispatch* pDispatch;
 IHTMLElementCollection* pCollection;
 
 m_strHTML = "";
 pUnk = m_Browser.GetDocument();  // Get document
 if (pUnk == NULL) return &m_strHTML; // Echec
 
 hr = pUnk->QueryInterface(IID_IDispatch, (void**)&lpDisp);
 if (hr != S_OK) return &m_strHTML;  // Echec
 
 hr = lpDisp->QueryInterface(IID_IHTMLDocument2, (void**)&pDocument);
 
 if ((S_OK == pDocument->get_all(&pCollection)) &&  
  (NULL != pDocument) &&  
  (S_OK == pCollection->tags(_variant_t("HTML" ), &pDispatch))
  && (NULL != pDispatch))
  {
   IHTMLElementCollectionPtr pCollectionHTML = pDispatch;
   if ( pCollectionHTML != NULL )
   {
    IDispatch* pDispatchHTML;
    if ( S_OK == pCollectionHTML->item(_variant_t(0L), _variant_t(), &pDispatchHTML))
    {
     IHTMLElementPtr pHTML = pDispatchHTML;
     if (NULL != pHTML)
     {
      BSTR bstrHTML = NULL;
      if (S_OK == pHTML->get_outerHTML(&bstrHTML))
      {
       m_strHTML = bstrHTML;  // Convertit en CString
       ::SysFreeString(bstrHTML);
       pHTML->Release();
      }
     }
    }
   }
   pCollectionHTML->Release();
  }
 pCollection->Release();
 pDocument->Release();
 lpDisp->Release();
 pUnk->Release();
 return &m_strHTML;
}
 
Flying
dkomputer y'a une méthode toute prête dans le internet sdk... tu files l'url et il te ramene ce qu'il y a à l'autre bout....
je te la file demain du boulot
verdy_p Une méthode basique:
telnet www.nom-du-site.com 80
(ne pas mettre http:// devant www)
puis taper (sans faire de faute de frappe et sans corriger, car le protocole HTTP n'est pas interactif et ne sait pas le faire):
 
GET /chemin/page.html HTTP/1.1
Host: www.nom-du-site.com  
 
(ligne vide au dessus)
 
En réponse tu as
 
200 OK HTTP/1.1
si la requête était correcte
suivi des entêtes MIME terminés par un double saut de ligne, et suivi du corps du document demandé, puis la session se termine.
Flying Il y a le programme TEAR.CPP qui explique bien comment récupérer le contenu d'une page internet.
Je m'en suis servi pour des essais.
 
Sinon avec le contrôle WebBrowser il y a aussi moyen de récupérer le contenu HTML.  J'ai fait une fonction qui le transfère dans un CString.  Si tu veux je le post ici.
 
@+
Flying
n0mad Si tu veux pouvoir lire le contenu de la page (pour l'analyser par exemple), tu peux utiliser l'ensemble des classes de connections : CHttpFile, CHttpConnection et CInternetSession.  
 
Il y a toute une serie d'exemple dans la doc.
 
Hope this help
Flying Salut,
 
Dans (imaginons une application boite de dialogue)ta ressource de boite de dialogue, tu cliques bouton droit et fais "insère active X control".  Là tu cherches "Navigateur microsoft" et tu l'insères.
Ensuite tu crées une variable qui y fait référence, par exemple m_Browser.
Ensuite dans ton code, tu insères pour naviguer : m_Browser.Navigate("url", NULL, NULL, NULL, NULL);
 
Voilà!
Conculte la doc pour les autres fonctions membres et les paramètres.
 
@+
Flying
Drums Une question de petit nouveau en prog. Windows : comment faire ne visual C++ pour se connecter à une URL et ramener une page ?
 
Thx

Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)