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 6 et antérieur Discussion :

Transfert FTP sous une fenêtre CMD.EXE


Sujet :

VB 6 et antérieur

  1. #1
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP sous une fenêtre CMD.EXE
    Bonsoir à tous,
    Je me lance dans le VB en connaissant un peu le VBA et je voudrais dans le cadre de mon boulot faire cela:

    1) Lancer un fenêtre CMD.EXE
    2) Me placer sous le répertoire
    cd D:\Rudy\RTE\Activités\ATSR
    3) Puis taper
    ftp @IP
    4) A ce moment un login m'est demandé donc taper dans la fenêtre :
    LOGIN
    5) Et ensuite le mot de passe m'est demandé donc taper:
    MDP
    6) Taper
    cd /sideral/config/BD_NEW
    7) Taper la commande
    bin
    8) Taper
    get Don_Sirc.tar
    9) taper
    QUIT
    10) Taper
    EXIT

    J'ai regardé plusieurs sujets de ce site et d'autres et je ne trouve pas ce que je veux ou en tout cas je ne le comprend pas.

    Pouvez vous m'aider à m'aider et m'orienter?
    Merci d'avance

  2. #2
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Bonjour et bienvenu sur le forum ...

    si tu tiens à utiliser l'utilitaire ligne de commande ftp.exe pour faire du ftp interesse toi à l'aide en ligne de celui-ci et plus particuliérement à la commande ftp -s ... (voir aussi aide en ligne windows..)

    par contre en VB tu pourrai faire quelque chose qui reléve moins du bricolage en utilisant par exemple l'activeX à Delbeke : http://www.developpez.net/forums/sho...d.php?t=188815


  3. #3
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP sous une fenêtre CMD
    Bonsoir bbil et merci pour ta réponse!
    J'ai regardé le code de Delbeke et désolé je ne dois pas avoirle niveau pour éplucher le code et en ressortir ce que je veux, c trop compliqué.
    Par contre j'ai trouvé
    un code qui me convient au niveau difficulté et je l'ai adapté à ce que je voulais;
    je l'ai testé au boulot mais le problème c'est que lorsque je lance l'exe, le fichier ScriptFtp.txt et TransFtp.Log sont vides et je ne vois pas pourquoi?

    Pouvez vous m'aider?
    Je chercher mais j'aurais besoin d'un coup de main quand même.

    Et merci à multiprise pour son code.
    Fichiers attachés Fichiers attachés

  4. #4
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Bonsoir,

    franchement, je pense que tu devrais te pencher sur le code de Delbeke si tu veux apprendre VB plutôt que le DOS :

    1) il n'est pas si compliqué que ça, tu pourras apprendre sûrement beaucoup si tu t'accroches plutôt que de chercher une solution toute cuite
    2) tu as le concepteur sous la main, tu auras donc probablement des réponses pertinentes et rapides (sachant en plus que pas mal de personnes ici l'ont testé)

    Enfin, ce n'est que mon avis...

  5. #5
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP sous une fenêtre CMD
    Bonsoir Phifi,
    bon bah je vais me pencher sur le code de Delbeke mais bon pour ce que j'ai à faire.
    Au fait, je ne veux pas le code tout cuit mais sur cette appli, le fait est que j'ai trouvé ça et que ça correspondait à ce que je voulais faire.
    Tant pis!
    J'ai compris les liens externes -->A bannir

    Et les codes -->faut mettre un #


    Sinon j'ai essayé d'ouvrir le projet de Delbeke et il me sort une erreur:
    Fichier introuvable : chemin\DiFtpCli6.ocx --continuer à charger le projet
    et la il m'ouvre le projet vide.
    Et pour l'OCX est bien sous le même répertoire.

    et voilà l'erreur qui est dans le log:
    Ligne 46: La classe DiFtpCli6.FtpCli du contrôle FtpCli1 n'est pas une classe de contrôle chargée.

    Faut il le placer sous c:\windows\system32 ?
    Je l'ai mis et c'est bon.

    comprend pas.

  6. #6
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Bonsoir RuDaï KiR

    Il y a en fait deux projets, le composant lui même (DiFtpCli6.vbp), et un projet montrant quelqu'unes des possibilités(ClientFtp.vbp). De plus il y a un fichier d'extension vbg permettant de charger les deux projets dans la même instance de vb(Groupe1.vbg), ce qui permet le deboggage du composant en action.

    L'emplacement de l'ocx dans ta machine n'est pas tres important, mais l'usage est de le mettre dans le répertoire system

    Si tu commences par charger le fichier de demonstration(ClientFtp.vbp), VB va essayer de charger le composant DiFtpCli6.Ocx, mais comme il n'est pas inscrit dans la base de registre, ca ne marchera pas. il faut donc d'abord l'inscrire dans le registre. Sous vb, cela peut être fait simplement en l'ajoutant dans la boite à outils de VB , dans un nouveau projet vide. Sinon la bonne vieille méthode de regsvr32.exe chemin_complet_de_l_ocx.ocx marche aussi tres bien.

    Si tu as d'autre difficultés, n'hesite pas à appeller.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  7. #7
    Membre éclairé
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    730
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2006
    Messages : 730
    Points : 876
    Points
    876
    Par défaut
    Non, non, ce n'est pas une histoire de liens externes qui sont à proscrire, je dis simplement qu'à mon avis, on ne te suivra pas de sites en sites avec plusieurs solutions éventuelles, sachant que tu as ce qu'il faut ici. Les liens externes sont bienvenues, à conditions qu'ils fassent offices de références, et non qu'ils diluent le problème... enfin ce n'est encore que mon avis.

    Concernant ton problème, c'est vrai que ce n'est pas très compliqué sur le papier : se connecter à un ftp, s'identifier, transférer... à condition que le réseau soit actif sur la machine cliente, que le serveur ftp soit joignable, que l'utilisateur soit bien enregistré sur le serveur, que le fichier à télécharger soit bien présent sur le serveur... et j'en passe. Tu verras que pour palier les problèmes éventuels, ce sera bien plus "parlant" qu'un simple batch, à moins bien sûr qu'il n'y ait jamais aucun problème

    -> Delbeke : j'ai intégré ton composant dans un service Windows que j'ai mis en place sur mon serveur, pour faire des mises à jour en automatique, il marche impeccablement bien, 5 minutes pour le mettre en service, je n'ai pas eu l'occasion de te remercier pour ce beau boulot. Félicitations.

  8. #8
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Merci Phifi, ca me va droit au coeur

    sinon,RuDaï KiRi , le code pour faire ce que tu veux avec mon composant pourrait être quelque chose 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
    Private Sub Command1_Click()
      FtpCli1.RemoteHost = AdresseServeur
      FtpCli1.RemotePort = 21
      FtpCli1.UserName = NomUser
      FtpCli1.Password = PassUser
      If Not FtpCli1.Met_CONNECT Then
        MsgBox "Impossible de se connecter au serveur", vbCritical
        Exit Sub
      End If
      If Not FtpCli1.Met_CD("sideral/config/BD_NEW") Then
        MsgBox "Impossible de trouver le répertoire", vbCritical
        FtpCli1.Met_DISCONNECT
        Exit Sub
      End If
      If Not FtpCli1.Met_BINARY Then
        MsgBox "Impossible de passer en mode binaire.changement de mode non effectué", vbInformation
      End If
      If Not FtpCli1.Met_GET(Don_Sirc.tar) Then
        MsgBox "Fichier non trouvé", vbInformation
      End If
      FtpCli1.Met_DISCONNECT
      MsgBox "Transfert terminé"
    End Sub
    Difficile de faire plus simple non ?
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  9. #9
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP VB
    Bonjour Phifi et Delbeke,
    Tu as raison Phifi pour les problèmes de connection, de présence du fichier etc.., c clair.
    Merci Delbeke d'avoir adapter ton code au plus simple pour mon style d'application.
    Je vais partir de ça mais c'est vrai qu'il faut que je me penche sur le code complet de Delbeke car je vais faire des transferts dans les deux sens et sur plusieurs fichiers.
    Alors l'explorateur de fichier m'intéresse!
    Je regarde ça en fin d'après midi et je pense que je reviendrai pour d'autres infos.
    Je tiens à vous remercier pour ce que vous avez fait jusqu'à présent et merci à ce site de mettre à disposition les connaissances de gens comme vous.

    à tous a l'heure

  10. #10
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP VB
    Re,
    j'ai adapté le code simplifié de Delbeke et ça marchec cool.
    Par contre, le fichier Don_Sirc.tar que j'upload, je ne vois pas où est ce qu'il le place sur le PC d'où je lance l'exe.
    je pense qu'il le place sous le répertoire de l'appli?
    Sinon comment je lui indique le répertoire où il doit être uploadé?
    merci

  11. #11
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP VB
    Désolé, j'ai encore parlé trop vite.
    Bon j'ai regarder tout ton code Delbeke et j'ai donc commenté avec mes mots et ça y est je pensecomprendre les 3/4 du code.

    Je l'ai adapté à mon cas et c super!
    Franchement bravo Delbeke pour ce que tu as fait et surtout à ta contribution.

    J'ai juste une question:
    Qu'est ce que l'objet "Imagelist" sur le form frmTest?
    A quoi sert il?

    Merci d'avance

  12. #12
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP VB
    Bon j'ai cherché dans développez.com et j'ai trouvé ce lien qui peut ^tre intéressant quand on se pose la question:
    http://khany.developpez.com/tutoriel/applicationvb/#LIV
    Donc OK je vois.

    Par contre je me retrouve sur un autre problème, en général les transferts que je fais se font sur des fichiers compressés format .tar;
    Donc je dois transférer en binaire.
    Comment puis je spécifier à ton aplli que le transfert se fera en binary?

    Je pense qu'il faut rajouter un argument à:
    FtpCli1.Met_GET FileName, Dir1.Path & "\" & FileName
    ou
    FtpCli1.Met_PUT Dir1.Path & "\" & File1.List(iPnt)

    du type FTP_TRANSFER_TYPE_BINARY

    mais je ne vois pas où.

    Merci d'avance Delbeke.

  13. #13
    Expert éminent sénior


    Profil pro
    Inscrit en
    Juin 2003
    Messages
    14 008
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2003
    Messages : 14 008
    Points : 20 038
    Points
    20 038
    Par défaut
    Citation Envoyé par RuDaï KiRi
    Par contre je me retrouve sur un autre problème, en général les transferts que je fais se font sur des fichiers compressés format .tar;
    Donc je dois transférer en binaire.
    Comment puis je spécifier à ton aplli que le transfert se fera en binary?
    relire le code à Delbeke :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
      If Not FtpCli1.Met_BINARY Then
        MsgBox "Impossible de passer en mode binaire.changement de mode non effectué", vbInformation
      End If

  14. #14
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP VB
    Ok bbil,
    j'ai fais cela pensez vous que c'est viable, comment puis je être sûr que le transfert est bien effectué en binaire?

    Pour le PUT:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Private Sub cmdSend_Click()
     Dim iPnt As Integer
    For iPnt = 0 To File1.ListCount - 1
     If File1.Selected(iPnt) Then
       If Check1.CausesValidation = True Then
             FtpCli1.Met_BINARY
    End If
            FtpCli1.Met_PUT Dir1.Path & "\" & File1.List(iPnt)
       End If
      Next
      FillDirList
    End Sub
    Pour le Get:
    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
     
    Private Sub cmdRecv_Click()
      Dim iPnt As Integer
      Dim FileName As String
      Dim FileType As Integer
      Dim SelKey As String
      For iPnt = 1 To lstDir.ListItems.Count
        If lstDir.ListItems(iPnt).Selected Then
          SelKey = lstDir.SelectedItem.Key
          FileName = FtpCli1.RemoteFiles(SelKey).FileName
          FileType = FtpCli1.RemoteFiles(SelKey).FileType
          If FileType = FtpFile Then
            If Check1.CausesValidation = True Then
                FtpCli1.Met_BINARY
            End If
            FtpCli1.Met_GET FileName, Dir1.Path & "\" & FileName
     
            'bRet = FtpGetFile(hConnection, szFileRemote, szFileLocal & "/" & szFileRemote, False, _
            'INTERNET_FLAG_RELOAD, dwType, 0)
            'bRet = FtpPutFile(hConnection, szFileLocal, szFileRemote, _
            ' dwType, 0)
     
          'to do : if filetype=ftpdir
          End If
        End If
      Next
      File1.Refresh
      FillDirList
    End Sub
    et la constante:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Const FTP_TRANSFER_TYPE_BINARY = &H2
    ??

  15. #15
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Pour etre sur que le transfert est fait en binaire, il suffit simplement de dé-zipper ton fichier recu pour voir s'il est valide. Perso, j'ai utilisé le mode normal pour transferer des fichiers binaires sans aucun problème.

    Je ne comprends pas ton histoire de constante.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  16. #16
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut Transfert FTP VB
    Bonjour à tous, bonjour Delbeke,
    je ne pourrais tester que demain au boulot pour le binaire.
    Et pour la constant, j'ai mélangé deux type de codes , désolé.

    Je te tiendrais au courant demain soir pour savoir si ça fonctionne au boulot

    bonne journée

  17. #17
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut vb6fr.dll
    Bonsoir tout le monde,
    Je vais peut être paraitre c..
    J'ai compris que pour les ocx il suffit de les placer sous le répertoire de l'appli.
    Mais une dll j'ai une petite question:
    Au bureau, je n'ai aucun droit d'écriture sur le C: et VB6 n'est pas installé sur mon PC.
    Je me retrouve donc à avoir un exe qui ne tournera pas car il manquera VB6FR.dll!
    comment puis je faire?
    Y a t il un moyen de contourner ça?
    MERCI D'AVANCE

  18. #18
    Membre expert
    Avatar de Delbeke
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    2 675
    Détails du profil
    Informations personnelles :
    Âge : 70
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 2 675
    Points : 3 696
    Points
    3 696
    Par défaut
    Expliques nous comment tu vas mettre cette apli sur ce PC si tu n'as aucun droit d'ecriture ! Depuis une disquette ?
    Le composant doit être enregistré sur le PC. Il faut être administrateur pour faire çà ! au tout au moins avoir les droits d'ecriture dans la base de registre
    A mon avis le Vb6fr.dll est le moindre de tes soucis, lui , il suffit de le mettre avec l'exe, ca suffira amplement.
    En général, on ne demande de conseils que pour ne pas les suivre ou, si on les a suivis, reprocher à quelqu'un de les avoir donnés
    (ALEXANDRE DUMAS)

    N'hésitez pas à visiter ma page de contributions

  19. #19
    Futur Membre du Club
    Profil pro
    Inscrit en
    Mai 2007
    Messages
    35
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France

    Informations forums :
    Inscription : Mai 2007
    Messages : 35
    Points : 9
    Points
    9
    Par défaut
    Merci Delbeke,
    Je t'expliques, au départ je ne pensais pas du tout à ces fichiers ocx et dll.
    J'ai réfléchi au fait ou il fallait les mettre.
    Au boulot je comptais prendre le fichier EXE sur une clef usb et le placer sur un répertoire du pc du boulot sur un répertoire réseau.
    Donc quand j'ai pensé à ça, j'ai été chez quelqu'un pour tester avec une machine XP normale.
    J'ai eu trois erreurs:
    manque DiFtpCli6.ocx -->normal
    MSWINSCK.OCX -->normal aussi
    et manque vb6fr.dll
    Donc je les aient mis dans le même répertoire et pour les ocx c bon mais pour la dll il faut que je la mette sous system32.
    Le problème c qu'au boulot j'ai pas les droits sur le C: alors je suis un peu dégouté.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Ouvrir une fenêtre explorer.exe à partir d'Access 2007
    Par JULIEN_92 dans le forum VBA Access
    Réponses: 3
    Dernier message: 30/01/2009, 13h51
  2. capturer la partie d'écran sous une fenêtre
    Par mehdiing dans le forum AWT/Swing
    Réponses: 7
    Dernier message: 25/04/2008, 10h25
  3. transfert ftp sous excel200 de micro vers IBM
    Par marti dans le forum Macros et VBA Excel
    Réponses: 0
    Dernier message: 19/02/2008, 15h17
  4. transfert ftp sous dos
    Par young077 dans le forum Scripts/Batch
    Réponses: 6
    Dernier message: 07/08/2007, 18h54
  5. Problème de transfert FTP sous IIS
    Par thanathz dans le forum Développement
    Réponses: 2
    Dernier message: 12/07/2002, 15h27

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