IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

VB.NET Discussion :

Problème wininet.dll et vb express 2008 (comment utiliser l'api wininet ?)


Sujet :

VB.NET

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 26
    Points
    26
    Par défaut Problème wininet.dll et vb express 2008 (comment utiliser l'api wininet ?)
    Bonjour,

    Je souhaite comparer les date de modification d'un fichier qui se trouve sur un serveur web (FTP) avec un fichier en local. J'utilise donc "wininet.dll" et vb express 2008, mais après plusieurs jour de recherche ça ne marche toujours pas.

    J'ai donc commencé par télécharger un fichier tout simplement, mais là aussi ça bloque. Je pense que je n'utilise pas bien wininet.dll. Je me demande si il faut l'ajouter comme référence ? (j'ai essayé, mais j'ai un message d'erreur). J'ai donc juste écris mon code comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
     
     
    Module ClassFTP_1
     
     
        Private Declare Function InternetOpen Lib "wininet.dll" Alias "InternetOpenA" (ByVal sAgent As String, ByVal lAccessType As Long, ByVal sProxyName As String, ByVal sProxyBypass As String, ByVal lFlags As Long) As Long
     
        Private Declare Function InternetConnect Lib "wininet.dll" Alias "InternetConnectA" (ByVal hInternetSession As Long, ByVal sServerName As String, ByVal nServerPort As Integer, ByVal sUsername As String, ByVal sPassword As String, ByVal lService As Long, ByVal lFlags As Long, ByVal lContext As Long) As Long
     
        Private Declare Function FtpGetFile Lib "wininet.dll" Alias "FtpGetFileA" (ByVal hFtpSession As Long, ByVal lpszRemoteFile As String, ByVal lpszNewFile As String, ByVal fFailIfExists As Boolean, ByVal dwFlagsAndAttributes As Long, ByVal dwFlags As Long, ByVal dwContext As Long) As Boolean
     
        Public Declare Function InternetCloseHandle Lib "wininet.dll" (ByVal hInet As Long) As Integer
     
        Public FTP_URL = "XXX"
        Public FTP_login = "XXX"
        Public FTP_passwd = "XXX"
     
        Public Sub Test_FTP()
     
            Dim lngINet As Long
            Dim lngINetConn As Long
            Dim blnRC As Boolean
     
     
            'ouverture session
            lngINet = InternetOpen("siteweb", 1, vbNullString, vbNullString, 0)
            'nom_session, acces direct (no proxy), nom proxy, bypass proxy, lFlags
     
            ' On ouvre une session
            If (lngINet <> 0) Then
                ' On ouvre une connection
                lngINetConn = InternetConnect(lngINet, FTP_URL, 21, FTP_login, FTP_passwd, 1, 0, 0)
                'session, hote a contacter, port 21, login, password, type FTP, lFlags, lContext
     
                If lngINetConn <> 0 Then
                    ' download
                    blnRC = FtpGetFile(lngINetConn, "test.txt", "c:\test.txt", 0, 0, 1, 0)
                    'connexion, fichier source, fichier destination, overwrite, lFlags, type ASCII, lContext
     
                    If (blnRC = False) Then
                        MsgBox("Erreur : " & blnRC)
                    Else
                        MsgBox("Ok : " & blnRC)
                    End If
     
     
                Else
                    MsgBox("Connect Erreur")
                End If
     
                ' On quitte proprement
                If lngINetConn <> 0 Then InternetCloseHandle(lngINetConn)
                If lngINet <> 0 Then InternetCloseHandle(lngINet)
     
     
            Else
                MsgBox("Pas de Connection.")
            End If
     
     
        End Sub
     
     
     
    End Module
    Lorsque j'execute mon programme, ca bloque à l'importation du fichier (Erreur : False)
    Faut-il importer une librairie spéciale pour faire fonctionner wininet ?

    Pourtant je me connect sans problème avec Filezilla (donc pas de problème sur le serveur FTP, ni de port bloqué). Je ne passe pas par un proxy, et le port 21 n'a pas été changé.

    Merci d'avance !
    ;-)

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    wininet est un peu obsolète en .NET

    utilise plutôt la classe FtpWebRequest

  3. #3
    Nouveau membre du Club
    Inscrit en
    Mars 2005
    Messages
    52
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 52
    Points : 26
    Points
    26
    Par défaut
    Merci pour ta réponse.

    En fait j'avais déjà utilisé FtpWebRequest. Le programme compare une cinquantaine de date entre les fichiers du serveur FTP et les fichiers locaux, mais je ne sais pas pourquoi, sur certains fichier s(aléatoire) il n'y arrive pas.

    C'est pour cela que je cherchais une autre solution de connaître la date de modification d'un fichier sur un serveur FTP, mais sans passer par FtpWebRequest.

Discussions similaires

  1. Réponses: 4
    Dernier message: 20/11/2009, 08h35
  2. Insertion Dll Visual C++ express 2008
    Par christof63 dans le forum Visual C++
    Réponses: 3
    Dernier message: 15/12/2008, 18h11
  3. [Visual C++ Express 2008] Comment interférer sur la Form
    Par Freud44 dans le forum Visual C++
    Réponses: 2
    Dernier message: 16/09/2008, 14h56
  4. problème de DLL sous visual studio 2008
    Par kira09 dans le forum C++
    Réponses: 2
    Dernier message: 12/06/2008, 12h50
  5. [Express 2008] Comment utiliser app.config
    Par squale69 dans le forum Visual C++
    Réponses: 2
    Dernier message: 23/04/2008, 22h05

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo