begin process at 2012 02 13 08:06:54
  Trouver un code source :
 
dans
 
Accueil > 

Code

 > 

Shell

 > UNE ALTERNATIVE FTP SANS API ET SANS OCX

UNE ALTERNATIVE FTP SANS API ET SANS OCX


 Information sur la source

Note :
9,5 / 10 - par 2 personnes
9,50 / 10

  • 1

  • 2

  • 3

  • 4

  • 5

  • 6

  • 7

  • 8

  • 9

  • 10
Catégorie :Shell Niveau :Débutant Date de création :14/02/2004 Date de mise à jour :14/02/2004 23:04:12 Vu :13 006

Auteur : Multiprise

Ecrire un message privé
Commentaire sur cette source (19)
Ajouter un commentaire et/ou une note

 Description

Une alternative FTP sans API et sans OCX
Ce petit bout de code est un exemple de ce qu'il est possible
de faire en VB afin de générer rapidement un transfert FTP
Certes il existe des méthodes plus complètes et plus élaborées
mais cette méthode à l'avantage d'être simple et fiable.
Le but de ce code n'est pas de gérer les transferts, mais de
donner une solution rapide, simple et efficace à qui veut effectuer
ponctuellement un transfert de fichier via FTP.


Source

  • 'Une alternative FTP sans API et sans OCX
  • 'Ce petit bout de code est un exemple de ce qu'il est possible
  • 'de faire en VB afin de générer rapidement un transfert FTP
  • 'Certes il existe des méthodes plus complètes et plus élaborées
  • 'mais cette méthode à l'avantage d'être simple et fiable.
  • 'Le but de ce code n'est pas de gérer les transferts, mais de
  • 'donner une solution rapide, simple et efficace à qui veut effectuer
  • 'ponctuellement un transfert de fichier via FTP.
  • '
  • '--------------------------------------------------------------
  • Sub CreerScriptFtp()
  • '
  • Dim Canal As Integer
  • Dim ScriptFTP As String
  • Dim Compteur As String
  • Dim ResultatCommande As Byte
  • Dim NomServeur As String
  • Dim NomUtilisateur As String
  • Dim MotDePasse As String
  • '
  • On Error Resume Next
  • NomServeur = "ftpperso.free.fr"
  • NomUtilisateur = "mon nom utilisateur"
  • MotDePasse = "mon mot de passe utilisateur"
  • ScriptFTP = ""
  • '
  • '1)NomServeur est soit le nom du serveur soit son adresse IP
  • ScriptFTP = "Open" & NomServeur & vbCrLf
  • '2)NomUtilisateur est le Nom de connection reconnu par le serveur FTP
  • ' MotDePasse est le mot de passe associé au Nom de connection
  • ScriptFTP = ScriptFTP & NomUtilisateur & " " & MotDePasse & vbCrLf
  • '3)On indique au serveur que le transfert se fera en mode binaire
  • ' Toujours utiliser le mode binaire, c'est le seul qui garantisse l'intégrité des donnéees transférées
  • ScriptFTP = ScriptFTP & "Binary" & vbCrLf
  • '4)On indique le répertoire local ou se trouvent les fichiers devant etres transférés
  • ScriptFTP = ScriptFTP & "lcd c:\RepertoireLocal" & vbCrLf
  • '5)On indique le répertoire de destination sur le serveur
  • ScriptFTP = ScriptFTP & "cd /usr/RepServeur/" & vbCrLf
  • '6)Si le serveur est sous unix, cette commande permet d'octroyer des attributs
  • ' en lecture/écriture/exécution pour les fichiers transférés sinon il seront
  • ' en lecture seule par défaut. Si le serveur n'est pas sous Unix, cette commande est ignorée.
  • ScriptFTP = ScriptFTP & "literal SITE umask 000" & vbCrLf
  • '7)Commande de hachage, des dièses de progression s'afficheront dans la fenêtre MsDos
  • ' indiquant l'état d'avancement du transfert.(commande optionnelle pour infos)
  • ScriptFTP = ScriptFTP & "hash" & vbCrLf
  • '8)Envoi tous les fichiers d'extention exe contenus dans le répertoire local
  • ' Si un seul fichier est envoyé la commande est: put + nom du fichier complet exe: put toto.exe
  • ' Attention aux majuscules/minuscules lors du transfert (émission ou réception) sur serveur Unix
  • ' Le serveur FtpPerso.free.fr de Free par exemple, fait la différence entre majusc/minisc
  • ScriptFTP = ScriptFTP & "mput " & "* .exe" & vbCrLf
  • '9)Reçoit tous les fichiers d'extention exe contenus dans le répertoire
  • ' défini par défaut sur le serveur FTP (Voir ligne de script 5)
  • ' Si un seul fichier est envoyé la commande est: get + nom du fichier complet exe: get toto.exe
  • ScriptFTP = ScriptFTP & "mget " & "*.exe" & vbCrLf
  • '10)Met fin à la connection FTP
  • ScriptFTP = ScriptFTP & "bye" & vbCrLf
  • '11)Ferme la fenêtre MsDos Ouverte
  • ScriptFTP = ScriptFTP & "exit" & vbCrLf
  • '
  • 'Fin du script
  • '
  • 'Enregistrement du script dans le fichier ScriptFTP.scr .
  • 'Ici le fichier est enregistré dans le répertoire de l'application
  • 'mais rien n'empêche de l'enregister dans un autre répertoire.
  • 'on attribu un canal libre poour lecture/écriture sur disque
  • Canal = FreeFile(1)
  • 'ouverture du fichier en écriture s'il n'existe pas il est créé
  • Open App.Path & "\ScriptFtp.scr" For Output As #Canal
  • Print #canal2, ScriptFTP
  • 'fermeture du fichier
  • Close canal2
  • '
  • 'Exécution du Script Ftp qui ici est lancé à la suite de la création
  • 'mais qui peu bien sûr être exécuté dans une autre procédure.
  • 'on fixe le lecteur par défaut
  • ChDrive Mid(App.Path, 1, 1)
  • 'on fixe le répertoire de lecture par défaut
  • ChDir (App.Path)
  • 'on exécute le script de transfert ftp
  • 'Exécution et affichage du transfert dans une fenêtre MsDos
  • ResultatCommande = Shell("command.com /c ftp -n -i -s:" & "ScriptFtp.scr", vbNormalFocus)
  • 'ici l'affichage ne se fait pas dans la fenêtre MsDos mais il est redirigé dans un fichier sur le répertoire courant
  • ResultatCommande = Shell("command.com /c ftp -n -i -s:" & "ScriptFtp.scr" & " > " & "TransFtp.Log", vbHide)
  • 'on affiche un message si la commande a échouée
  • 'ResultatCommande renvoi l'identificateur de tâche si la commande a été exécutée normalement
  • 'Sinon une erreur est générée
  • If Err.Number <> 0 Then MsgBox "La commande FTP a Echouée !", vbyesonly + vbCritical + vbApplicationModal
  • Err.Clear
  • End Sub
  • 'NB: La commande Shell gère la fenêtre d'affichage MsDos suivant le paramètre WindowStyle
  • 'vbHide 0 La fenêtre est masquée et activée.
  • 'vbNormalFocus 1 La fenêtre est activée et rétablie à sa taille et à sa position d'origine.
  • 'vbMinimizedFocus 2 La fenêtre est affichée sous forme d'icône et activée.
  • 'vbMaximizedFocus 3 La fenêtre est agrandie et activée
  • 'vbNormalNoFocus 4 La fenêtre est rétablie à sa taille et à sa position les plus récentes.
  • ' la fenêtre active reste active.
  • 'vbMinimizedNoFocus 6 La fenêtre est affichée sous forme d'icône. La fenêtre active reste active.
  • '
  • '
'Une alternative FTP sans API et sans OCX
'Ce petit bout de code est un exemple de ce qu'il est possible
'de faire en VB afin de générer rapidement un transfert FTP
'Certes il existe des méthodes plus complètes et plus élaborées
'mais cette méthode à l'avantage d'être simple et fiable.
'Le but de ce code n'est pas de gérer les transferts, mais de
'donner une solution rapide, simple et efficace à qui veut effectuer
'ponctuellement un transfert de fichier via FTP.
'
'--------------------------------------------------------------
Sub CreerScriptFtp()
'
Dim Canal As Integer
Dim ScriptFTP As String
Dim Compteur As String
Dim ResultatCommande As Byte
Dim NomServeur As String
Dim NomUtilisateur As String
Dim MotDePasse As String
'
On Error Resume Next
    NomServeur = "ftpperso.free.fr"
    NomUtilisateur = "mon nom utilisateur"
    MotDePasse = "mon mot de passe utilisateur"
    
    ScriptFTP = ""
    '
    '1)NomServeur est soit le nom du serveur soit son adresse IP
    ScriptFTP = "Open" & NomServeur & vbCrLf
    '2)NomUtilisateur est le Nom de connection reconnu par le serveur FTP
    '  MotDePasse est le mot de passe associé au Nom de connection
    ScriptFTP = ScriptFTP & NomUtilisateur & " " & MotDePasse & vbCrLf
    '3)On indique au serveur que le transfert se fera en mode binaire
    '  Toujours utiliser le mode binaire, c'est le seul qui garantisse l'intégrité des donnéees transférées
    ScriptFTP = ScriptFTP & "Binary" & vbCrLf
    '4)On indique le répertoire local ou se trouvent les fichiers devant etres transférés
    ScriptFTP = ScriptFTP & "lcd c:\RepertoireLocal" & vbCrLf
    '5)On indique le répertoire de destination sur le serveur
    ScriptFTP = ScriptFTP & "cd /usr/RepServeur/" & vbCrLf
    '6)Si le serveur est sous unix, cette commande permet d'octroyer des attributs
    '  en lecture/écriture/exécution pour les fichiers transférés sinon il seront
    '  en lecture seule par défaut. Si le serveur n'est pas sous Unix, cette commande est ignorée.
    ScriptFTP = ScriptFTP & "literal SITE umask 000" & vbCrLf
    '7)Commande de hachage, des dièses de progression s'afficheront dans la fenêtre MsDos
    '  indiquant l'état d'avancement du transfert.(commande optionnelle pour infos)
    ScriptFTP = ScriptFTP & "hash" & vbCrLf
    '8)Envoi tous les fichiers d'extention exe contenus dans le répertoire local
    '  Si un seul fichier est envoyé la commande est: put + nom du fichier complet exe: put toto.exe
    '  Attention aux majuscules/minuscules lors du transfert (émission ou réception) sur serveur Unix
    '  Le serveur FtpPerso.free.fr de Free par exemple, fait la différence entre majusc/minisc
    ScriptFTP = ScriptFTP & "mput " & "* .exe" & vbCrLf
    '9)Reçoit tous les fichiers d'extention exe contenus dans le répertoire
    '  défini par défaut sur le serveur FTP (Voir ligne de script 5)
    '  Si un seul fichier est envoyé la commande est: get + nom du fichier complet exe: get toto.exe
    ScriptFTP = ScriptFTP & "mget " & "*.exe" & vbCrLf
    '10)Met fin à la connection FTP
    ScriptFTP = ScriptFTP & "bye" & vbCrLf
    '11)Ferme la fenêtre MsDos Ouverte
    ScriptFTP = ScriptFTP & "exit" & vbCrLf
    '
    'Fin du script
    '
    'Enregistrement du script dans le fichier ScriptFTP.scr .
    'Ici le fichier est enregistré dans le répertoire de l'application
    'mais rien n'empêche de l'enregister dans un autre répertoire.
    'on attribu un canal libre poour lecture/écriture sur disque
    Canal = FreeFile(1)
    'ouverture du fichier en écriture s'il n'existe pas il est créé
    Open App.Path & "\ScriptFtp.scr" For Output As #Canal
         Print #canal2, ScriptFTP
    'fermeture du fichier
    Close canal2
    '
    'Exécution du Script Ftp qui ici est lancé à la suite de la création
    'mais qui peu bien sûr être exécuté dans une autre procédure.
    'on fixe le lecteur par défaut
    ChDrive Mid(App.Path, 1, 1)
    'on fixe le répertoire de lecture par défaut
    ChDir (App.Path)
    'on exécute le script de transfert ftp
    'Exécution et affichage du transfert dans une fenêtre MsDos
    ResultatCommande = Shell("command.com /c ftp -n -i -s:" & "ScriptFtp.scr", vbNormalFocus)
    'ici l'affichage ne se fait pas dans la fenêtre MsDos mais il est redirigé dans un fichier sur le répertoire courant
    ResultatCommande = Shell("command.com /c ftp -n -i -s:" & "ScriptFtp.scr" & " > " & "TransFtp.Log", vbHide)
    'on affiche un message si la commande a échouée
    'ResultatCommande renvoi l'identificateur de tâche si la commande a été exécutée normalement
    'Sinon une erreur est générée
    If Err.Number <> 0 Then MsgBox "La commande FTP a Echouée !", vbyesonly + vbCritical + vbApplicationModal
    Err.Clear
End Sub

'NB: La commande Shell gère la fenêtre d'affichage MsDos suivant le paramètre WindowStyle
'vbHide             0  La fenêtre est masquée et activée.
'vbNormalFocus      1   La fenêtre est activée et rétablie à sa taille et à sa position d'origine.
'vbMinimizedFocus   2  La fenêtre est affichée sous forme d'icône et activée.
'vbMaximizedFocus   3  La fenêtre est agrandie et activée
'vbNormalNoFocus    4  La fenêtre est rétablie à sa taille et à sa position les plus récentes.
'                     la fenêtre active reste active.
'vbMinimizedNoFocus 6 La fenêtre est affichée sous forme d'icône. La fenêtre active reste active.
'
'



 Sources du même auteur

Source avec Zip Source avec une capture ADO_DATA_VIEW CONNEXION ET MANIPULATION DE BASES DE DONNÉES ...
Source avec Zip Source avec une capture UN UTILITAIRE CHAT UTILISANT LE PROTOCOL UDP. ENCORE UN!!!
Source avec Zip Source avec une capture ACCÈDER ET INTERAGIR AVEC UNE BASE DE DONNÉE QUELCONQUE.
Source avec Zip Source avec une capture UTILITAIRE DE MESSAGERIE MULTI-DESTINATAIRES AVEC PIÈCES JOI...

 Sources de la même categorie

Source avec Zip CHOIX DE COULEUR SOUS XP EN MODE CONSOLE par ccgousset
Source avec Zip Source .NET (Dotnet) ENVOYEUR DE MAIL EN BATCH/DOS par Ant95
Source avec Zip Source avec une capture LANCEUR REALVNC par Nobru59
Source avec Zip Source .NET (Dotnet) XGBLENDERCOMPRESSOR par XelectroX
Source avec Zip Source .NET (Dotnet) CONTRÔLER L'AUTORUN DE WINDOWS XP (ET SUPÉRIEUR) ET LES NOTI... par ShareVB

Commentaires et avis

Commentaire de sibi12 le 15/02/2004 12:47:48

Bel exemple d'utilisation des commandes dos...et bien commenté

juste qque petite suggestion suggestion :

- sous NT/XP command.com n'existe plus mais c'est cmd.exe donc le programme peut renvopyer une erreur.

- Au lieu d'executer 2 fois la même commande, redirige la premiere dans un fichier et puis utilise la commande type qui te permet d'affciher ce fichier

Voilà je te met quand même un petit 9 pour les commentaires et tout et tout

@+

Commentaire de Multiprise le 15/02/2004 19:09:27

Désolé de te contredire mais Command.com existe toujours sous NT/Xp et même sous xp serveur. Quant à la commande exécutée deux fois, le but était simplement de montrer qu'il était possible de rediriger le résultat soit dans une fenêtre MsDos, soit dans un fichier.
Merci pour ton commentaire constructif et pertinent..


Commentaire de sibi12 le 16/02/2004 15:39:56

Ah oui bien vu...command.com existe toujours...
désolé de pas avoir vérifier avant de dire n'importe quoi...

Commentaire de Xax le 16/02/2004 23:32:22

Salut, j'ai une petite question :

j'avais utiliser une methode a peu près identique, je lancais une commande ftp avec un script grace a la classe process. je redirigais la sortie standard du process pour pouvoir analyser les résultats...
jusque la pas de problème, en mode débuggage ca passait nikel, par contre quand je lancais l'exe compilé (hors visual studio), le transfert ce faisait correctement mais mon exe n'attendais plus que la commande soit finit. je ne pouvais donc plus savoir si tout c'était bien déroulé.

a tu essayer en mode compiler ??

@++ Xax

ps : si oui et si ca passe mille merci

Commentaire de Multiprise le 18/02/2004 06:21:05

Salut Xas je pense que ta question était de pouvoir exécuter un logiciel, et d'attendre que ce dernier soit terminé pour que ton programme reprenne le contrôle. La réponse se trouve Ci-dessous:

'A mettre dans un Module :
'Déclarations des fonctions API Shell and Wait Permet d'exécuter une ligne de commande
'et d 'attendre la fermeture de l'application avant de poursuivre.
Public Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Public Declare Function GetExitCodeProcess Lib "kernel32" (ByVal hProcess As Long, lpExitCode As Long) As Long
Public Declare Function CloseHandle Lib "kernel32" (ByVal hObject As Long) As Long
'Api de temporisation, met le système en sommeil(presque) pour un temps défini en millisecondes.
Public Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)

'

'Procédure qui permet de lancer une tache et d'attendre que celle-ci
'soit terminée avant que le programme initial reprenne la main
Public Sub ExecCmd(strCmdline As String, Etat As Byte)
    Const PROCESS_ACTIF = &H103&
    Const PROCESS_QUERY_INFORMATION = &H400
    Dim lngREt As Long
    Dim processID As Long
    Dim ProcessHandle As Long
    Dim lExitCode As Long
'
On Error GoTo Err_ExecCmd
    Screen.MousePointer = vbHourglass
    'exécute le process (programme que l'on veut lancer)
    processID = Shell(strCmdline, Etat)
    'processId est l'identifiant du process que l'on vient d'exécuter
    ProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION, True, processID)
    Occupe = True
    Do
        ' Retourne le status du processus en cours
        '(si lExitCode =&h103 le process est actif)
        GetExitCodeProcess ProcessHandle, lExitCode
        ' Les 2 lignes suivantes sont utile pour éviter de faire
        ' boucler le système en continu avec GetExitCodeProcess
        DoEvents
        'Temps de latence en millisecondes
        Sleep 500
        'on boucle temps que Getexitcode nous renvoi le process comme actif
    Loop While lExitCode = PROCESS_ACTIF
    CloseHandle (ProcessHandle)
    Form1.MousePointer = vbDefault
    Occupe = False
    If Etat &gt; 0 Then MsgBox "Transferts Terminés.."
Exit_ExecCmd:
    Exit Sub

Err_ExecCmd:
    'MsgBox "ExecCmd" & " Erreur N°" & Err.Number & " =&gt; " & Err.Description
    Resume Exit_ExecCmd

End Sub


'Dans une Procédure on exécute la ligne de commande (identique à la Cmd Shell)
'Dans ce cas c'est pour exécuter un script Ftp
Call ExecCmd("command.com /c ftp -n -i -s:" & "Import_Fichiers.spt", 1)
'Mais pour un programme c'est identique
Call ExecCmd("c:\MonRepertoire\UnProgramme.exe",1)

Commentaire de Multiprise le 18/02/2004 06:31:13

Désolé Xas je n'ai pas été attentif et j'ai fait un copier collé sans m'apercevoir qu'il y avoit des lignes sans intérêt.
Ci-dessous la correction de la procédure.

'Procédure qui permet de lancer une tache et d'attendre que celle-ci
'soit terminée avant que le programme initial reprenne la main
Public Sub ExecCmd(strCmdline As String, Etat As Byte)
    Const PROCESS_ACTIF = &H103&
    Const PROCESS_QUERY_INFORMATION = &H400
    Dim lngREt As Long
    Dim processID As Long
    Dim ProcessHandle As Long
    Dim lExitCode As Long
'
On Error GoTo Err_ExecCmd
    'exécute le process (programme que l'on veut lancer)
    processID = Shell(strCmdline, Etat)
    'processId est l'identifiant du process que l'on vient d'exécuter
    ProcessHandle = OpenProcess(PROCESS_QUERY_INFORMATION, True, processID)
    Do
        ' Retourne le status du processus en cours
        '(si lExitCode =&h103 le process est actif)
        GetExitCodeProcess ProcessHandle, lExitCode
        ' Les 2 lignes suivantes sont utile pour éviter de faire
        ' boucler le système en continu avec GetExitCodeProcess
        DoEvents
        'Temps de latence en millisecondes
        Sleep 500
        'on boucle temps que Getexitcode nous renvoi le process comme actif
    Loop While lExitCode = PROCESS_ACTIF
    CloseHandle (ProcessHandle)
Exit_ExecCmd:
    Exit Sub

Err_ExecCmd:
    MsgBox "ExecCmd" & " Erreur N°" & Err.Number & " =&gt; " & Err.Description
    Resume Exit_ExecCmd

End Sub

Commentaire de Xax le 18/02/2004 09:13:52

Effectivement ma question était celle la.

c pas con du tout le coups de la boucle, je garde ca sous le coude.

merci bien pour l'info...

@ bientot & bon courage !!

Commentaire de capuccino_fr le 19/04/2004 10:55:04

perso, ca marche pas. je sais pas si ce sont les codes... :-(
je suis sous winXP avec VB.NET

Commentaire de capuccino_fr le 19/04/2004 11:30:27

Beaucoup plus simple:

Dim monProcessusFTP() As Process
            ResultatCommande = Shell(Environ$("comspec") & " /c ftp -s:" & Environ("windir") & "\ScriptFTP.scr , AppWinStyle.Hide)
            monProcessusFTP = Process.GetProcessesByName("ftp")
            For Each p As Process In monProcessusFTP
                p.WaitForExit()
            Next

ca fonctionne, c'est simple, discret
je vais tester sous windows 98, mais j'ai meme pas peur...

ciao. @+

Commentaire de capuccino_fr le 19/04/2004 11:32:37

Beaucoup plus simple:

Dim monProcessusFTP() As Process
            ResultatCommande = Shell(Environ$("comspec") & " /c ftp -s:" & Environ("windir") & "\ScriptFTP.scr , AppWinStyle.Hide)
            monProcessusFTP = Process.GetProcessesByName("ftp")
            For Each p As Process In monProcessusFTP
                p.WaitForExit()
            Next

ca fonctionne, c'est simple, discret
je vais tester sous windows 98, mais j'ai meme pas peur...

ciao. @+

Commentaire de tousdom le 23/06/2004 15:29:48

Le source est bon mais il y a deux petits bugs

à la ligne 1 il faut ajouter un espace après l'Open
ScriptFTP = "Open " & NomServeur & vbCrLf

à la ligne 2 il faut ajouter la commande user du ftp
ScriptFTP = ScriptFTP & "User " & NomUtilisateur & " " & MotDePasse

Sous Windows 2000 ou XP il est préférable d'intégrer le chemin de l'application dans le shell :

  ResultatCommande = Shell("command.com /c ftp -n -i -s:" & App.Path & "ScriptFtp.scr", vbNormalFocus)

Commentaire de Patrice99 le 09/06/2005 13:58:11

Effectivement MSINET.OCX ne fonctionne que sur un poste de développement (VB6 doit être installé), et ce script fonctionne à merveille sur un poste simple, bravo. J'ai même simplifié à l'extrême le script :
Open ftpperso.free.fr
User Login pw
Binary
mput C:\tmp\Test.txt
bye
exit

Ya juste un truc qui ne fonctionne pas, c'est le rapport TransFtp.Log, pourtant il fonctionne quand je tape exactement la même commande directement dans une fenêtre DOS. Quelqu'un a une idée ? (de toute façon j'ai le code de retour avec mon ShellWait, pas vraiment besoin du rapport)
2 bugs à signaler : ResultatCommande est un long et nom un byte, et ajouter & vbCrLf après le mot de passe dans la dernière remarque.

Commentaire de dam1234 le 19/07/2005 15:22:12

Bonjour je me retrouve face a un probleme lors de l'execution de ce script. En fait lorsque j'execute le script en tapant directement la ligne de commande dans une fenetre DOS aucun souci, tout fonctionne mais lorsque je fais executer le script par l'intermediaire de code VB avec la fonction Shell, alors rien ne se passe et le code d 'erreur renvoyé est un depassement de capacite (6)... J'utilise XL 97 et ouiouin 98 et malgré mes recherches je ne vois vraiment pas d'ou peut provenir le hic, quelqu'un a t il une idee? Merci d'avance a tous

Commentaire de dam1234 le 19/07/2005 16:44:46

Je précise également qu'étrangement si je fais une sortie des cmds dans un fichier, le script lance depuis DOS donne un truc du type
ftp>connect blablaftp
open blablaftp 8021 (le port ke je desire)
220 blablaftp server ...  ready
ftp>user moi monpass
331 pwd required
230 login successfull
et les commandes s enchainent sans problemes
alors que lorsque le script est lance par le shell vb ca donne
ftp>connect blaftp
open blaftp 8021
220 blaftp server ... ready
utilisateur(blaftp:(none)ÿ:  (cette ligne je ne se pa ce k c et le 'ÿ' me semble louche)
331 pwd required
                 (la je ne se pas pkoi mais j'ai une ligne vide!)
230 login successfull
ftp> commande non valide
et la aucune commande ne fonctionne. Deja le user /password n'apparait pas est-ce normal?

Je tiens a preciser que ces 2 sorties ont pour source le MEME script alors je ne comprends pas...

Commentaire de capuccino_fr le 19/07/2005 19:15:28

je vois pas le probleme... honnettement tu dois avoir un espace ou qqch comme ca, non?

Commentaire de dam1234 le 20/07/2005 08:38:06

C'est ce que je pensais aussi ; un espace je veux bien mais je vois pas ou du tout puisque comme je l'ai dit precedemment le script lance est le meme... Je vais encore jete un coup d 'oeil si je ne vois pas d'erreurs. Merci quand meme de ton aide peut etre est ce la solution

Commentaire de dam1234 le 20/07/2005 08:51:59

Oki oki probleme resolu, je ne suis pas sur de la raison mais je pense que lors de l'execution par Shell VB je ne mettais pas les -n -i pour les options de ftp et cela posait apparemment probleme enfin merci de ta reponse man.

Commentaire de Cobaille69 le 27/05/2006 19:35:12

Je ne comprend pas comment ca ne te donne pas d'erreur quand tu écris:

Canal = FreeFile(1)
    'ouverture du fichier en écriture s'il n'existe pas il est créé
    Open App.Path & "\ScriptFtp.scr" For Output As #Canal
         Print #canal2, ScriptFTP
    'fermeture du fichier
    Close canal2

Vraiment, c'est étrange pcq normalement il essayerait d'ouvrir le fichier #0. Quelqu'un a une idée?

Commentaire de sibi12 le 27/05/2006 20:42:58

Oui étrange... essaie de déboguer. Mais bon au pire c'est vite corrigé ^^

(moi étant sous Linux depuis je ne saurais plus...)

 Ajouter un commentaire




Nos sponsors


Sondage...

CalendriCode

Février 2012
LMMJVSD
  12345
6789101112
13141516171819
20212223242526
272829    

Consulter la suite du CalendriCode

 
Développement réalisé par Nicolas SOREL (Nix) avec l'aide de : Cyril DURAND et Emmanuel (EBArtSoft), Merci à Vincent pour ses précieux conseils.
CodeS-SourceS.com© Toute reproduction même partielle est interdite sauf accord écrit du Webmaster
CodeS-SourceS.com© est une marque déposée tous droits réservés

Google Coop CodeS-SourceS Google Coop CodeS-SourceS
Temps d'éxécution de la page : 0,702 sec (4)

Nous contacter | Annoncer sur CodeS-SourceS | Mentions légales