Batch Index du Forum
S’enregistrerRechercherFAQMembresGroupesConnexion
Répondre au sujet Page 1 sur 1
FTP Management
Auteur Message
Répondre en citant
Message FTP Management 
Hello !

Bon, mon FTP marche, j'suis tout content, MAIS... Rien ne s'affiche avec mon navigateur. Pas grave, le serveur fonctionne tout de même.
Donc, je me suis fais un p'tit programme que je partage avec vous, je vous avoue que j'y ai passé l'après-midi, j'ai galéré pour faire une interface a peu près convenable sans trop être imposante.

C'est comme FileZilla Client mais en moins bien élaboré et en AutoIt.

Tout d'abord, le code source:

Code:

#Include <FTPEx.Au3>
#Include <Array.Au3>
#Include <GuiListView.Au3>
#Include <GUIConstants.Au3>
#Include <GUIConstantsEx.Au3>

HotKeySet("{ESC}", _Quit)

$AutoIP = "Adresse IP du serveur"
$AutoUser = "Nom d'utilisateur"
$AutoPassword = ""

If FileExists(@AppDataDir & "\FTP Management\Auto.ini") Then
   $AutoIP = IniRead(@AppDataDir & "\FTP Management\Auto.ini", "FTP", "IP", "")
   $AutoUser = IniRead(@AppDataDir & "\FTP Management\Auto.ini", "FTP", "User", "")
   $AutoPassword = IniRead(@AppDataDir & "\FTP Management\Auto.ini", "FTP", "Password", "")
Else
   DirCreate(@AppDataDir & "\FTP Management\")
EndIf

$FTP = ""
$TextEdit = ""

$GUI = GUICreate("FTP Management", 590, 600, (@DesktopWidth-590)/2, (@DesktopHeight-545)/2)
      GUISetBkColor("0x0099FF", $GUI)
      GUISetState(@SW_SHOW, $GUI)

$InputIP = GUICtrlCreateInput($AutoIP, 10, 10, 280, 25, $SS_CENTER)
         GUICtrlSetFont(-1, 12)

$InputUser = GUICtrlCreateInput($AutoUser, 300, 10, 135, 25)
          GUICtrlSetFont(-1, 12)

$InputPassword = GUICtrlCreateInput($AutoPassword, 445, 10, 135, 25, $ES_PASSWORD)
              GUICtrlSetFont(-1, 12)

$ButtonIndex = GUICtrlCreateButton("Index", 300, 45, 280, 25)
$ButtonLogin = GUICtrlCreateButton("Connexion", 10, 45, 135, 25)
$ButtonLogout = GUICtrlCreateButton("Déconnexion", 10+135+10, 45, 135, 25)

$IndexList = GUICtrlCreateListView("Nom         |Taille         |Modifié le              ", 10, 10*3+25*2, 570, 100)
$List = GUICtrlCreateListView("Nom         |Taille         |Modifié le              ", 10, 10*4+25*3+75, 280, 200)
$DirList = GUICtrlCreateListView("Nom         |Taille         |Modifié le              ", 300, 10*4+25*3+75, 280, 200)

$ButtonDownload = GUICtrlCreateButton("Télécharger", 10, 10*5+25*3+200+75, 135, 25)
$ButtonUpload = GUICtrlCreateButton("Envoyer", 10*2+135, 10*5+25*3+200+75, 135, 25)

$ButtonRename = GUICtrlCreateButton("Renommer", 10, 10*6+25*4+200+75, 135, 25)
$ButtonDelete = GUICtrlCreateButton("Supprimer", 10*2+135, 10*6+25*4+200+75, 135, 25)

$ButtonNewDir = GUICtrlCreateButton("Nouveau", 10*3+135*2, 10*5+25*3+200+75, 135, 25)
$ButtonShowDir = GUICtrlCreateButton("Voir contenu", 10*4+135*3, 10*5+25*3+200+75, 135, 25)
$ButtonRenameDir = GUICtrlCreateButton("Renommer", 10*3+135*2, 10*6+25*4+200+75, 135, 25)
$ButtonDeleteDir = GUICtrlCreateButton("Supprimer", 10*4+135*3, 10*6+25*4+200+75, 135, 25)

DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonIndex), "Wstr", 0, "Wstr", 0)
DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonLogin), "Wstr", 0, "Wstr", 0)
DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonLogout), "Wstr", 0, "Wstr", 0)

DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonDownload), "Wstr", 0, "Wstr", 0)
DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonUpload), "Wstr", 0, "Wstr", 0)
DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonRename), "Wstr", 0, "Wstr", 0)
DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonDelete), "Wstr", 0, "Wstr", 0)

DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonNewDir), "Wstr", 0, "Wstr", 0)
DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonShowDir), "Wstr", 0, "Wstr", 0)
DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonRenameDir), "Wstr", 0, "Wstr", 0)
DllCall("UxTheme.dll", "Int", "SetWindowTheme", "Hwnd", GUICtrlGetHandle($ButtonDeleteDir), "Wstr", 0, "Wstr", 0)

_Disable()

$Edit = GUICtrlCreateEdit("", 10, 40+10*6+25*4+200+70, 570, 120)
GUICtrlSetColor($Edit, "0x009900")

While 1
   Switch GUIGetMsg()
     Case $GUI_EVENT_CLOSE
       _Quit()
     Case $ButtonLogin
       _GUICtrlListView_DeleteAllItems($List)
       _GUICtrlListView_DeleteAllItems($IndexList)
       _GUICtrlListView_DeleteAllItems($DirList)
       GUICtrlSetData($Edit, $TextEdit)
       $IP = GUICtrlRead($InputIP)
       $User = GUICtrlRead($InputUser)
       $Password = GUICtrlRead($InputPassword)
       _Edit("Connexion au serveur..." & @CRLF)
       $FTPOpen = _FTP_Open("Serveur")
       $FTPConnect = _FTP_Connect($FTPOpen, $IP, $User, $Password)
       GUICtrlSetData($Edit, $TextEdit)
       If $FTPConnect Then
         GUICtrlSetColor($Edit, "0x009900")
         _Edit("Adresse IP: " & $IP)
         _Edit("Utilisateur: " & $User)
         $Count = StringSplit($Password, "")
         $Stars = ""
         If $Count[0] > 0 Then
            $Stars = ""
            For $I = 1 To $Count[0]
              $Stars = $Stars & "*"
            Next
         EndIf
         _Edit("Mot de passe: " & $Stars & @CRLF)
         $FTP = 1
         _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Vous êtes connecté !")
         _List()
         DirCreate(@AppDataDir & "\FTP Management\" & $IP)
         If FileExists(@AppDataDir & "\FTP Management\Auto.ini") Then FileDelete(@AppDataDir & "\Autoit MyFTP\Auto.ini")
         IniWrite(@AppDataDir & "\FTP Management\Auto.ini", "FTP", "IP", $IP)
         IniWrite(@AppDataDir & "\FTP Management\Auto.ini", "FTP", "User", $User)
         IniWrite(@AppDataDir & "\FTP Management\Auto.ini", "FTP", "Password", $Password)
         GUICtrlSetState($ButtonLogin, $GUI_DISABLE)
         GUICtrlSetState($ButtonLogout, $GUI_ENABLE)
         GUICtrlSetState($ButtonIndex, $GUI_ENABLE)
         GUICtrlSetState($ButtonDownload, $GUI_ENABLE)
         GUICtrlSetState($ButtonUpload, $GUI_ENABLE)
         GUICtrlSetState($ButtonRename, $GUI_ENABLE)
         GUICtrlSetState($ButtonDelete, $GUI_ENABLE)

         GUICtrlSetState($ButtonRenameDir, $GUI_ENABLE)
         GUICtrlSetState($ButtonDeleteDir, $GUI_ENABLE)
         GUICtrlSetState($ButtonNewDir, $GUI_ENABLE)
         GUICtrlSetState($ButtonShowDir, $GUI_ENABLE)
       Else
         GUICtrlSetColor($Edit, "0xFF0000")
         _Edit("Echec de la connexion !")
         GUICtrlSetState($ButtonLogin, $GUI_ENABLE)
         _Disable()
       EndIf

     Case $ButtonLogout
       GUICtrlSetColor($Edit, "0x000000")
       _GUICtrlListView_DeleteAllItems($List)
       _GUICtrlListView_DeleteAllItems($DirList)
       _GUICtrlListView_DeleteAllItems($IndexList)
       _FTP_Close($FTPConnect)
       GUICtrlSetState($ButtonLogin, $GUI_ENABLE)
       _Disable()
       _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Vous êtes déconnecté !" & @CRLF)

     Case $ButtonIndex
       _GUICtrlListView_DeleteAllItems($List)
       _GUICtrlListView_DeleteAllItems($DirList)
       _GUICtrlListView_DeleteAllItems($IndexList)
       _FTP_DirSetCurrent($FTPConnect, "\")
       Global $Index = _FTP_ListToArrayEx($FTPConnect)
       If $Index[0][0] > 0 Then
         _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Enumération des fichiers [Index]...")
         For $I = 1 To $Index[0][0]
            GUICtrlCreateListViewItem($Index[$I][0] & "|" & Round($Index[$I][1]/1024, 2) & " Ko(s)|" & $Index[$I][3], $IndexList)
         Next
       EndIf
       _List()

     Case $ButtonDownload
       $File = StringSplit(GUICtrlRead(GUICtrlRead($List)), "|")
       If $File[1] <> "0" Then
         _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Téléchargement de " & $File[1] & "...")
         _FTP_FileGet($FTPConnect, $File[1], @AppDataDir & "\FTP Management\" & $IP & "\" & $File[1])
         _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Fichier téléchargé !")
       EndIf

     Case $ButtonUpload
       $File = FileOpenDialog("FTP Management", @DocumentsCommonDir, "Fichier (*.*)")
       _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Envoie de " & $File & "...")
       $Name = StringSplit($File, "\")
       _FTP_FilePut($FTPConnect, $File, $Name[UBound($Name)-1])
       GUICtrlCreateListViewItem($Name[UBound($Name)-1] & "|" & $Name[UBound($Name)-1] & " octet(s)|" & $Name[UBound($Name)-1], $List)
       _List()
       _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Fichier envoyé !")

     Case $ButtonRename
       $File = StringSplit(GUICtrlRead(GUICtrlRead($List)), "|")
       $Extension = StringSplit($File[1], ".")
       $InputBox = InputBox("Renommez le dossier selectionné", "Nouveau nom (sans extension):")
       _FTP_FileRename($FTPConnect, $File[1], $InputBox & "." & $Extension[2])
       _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Le fichier " & $File[1] & " à été renommé en " & $InputBox & "." & $Extension[2])
       _List()

     Case $ButtonDelete
       $File = StringSplit(GUICtrlRead(GUICtrlRead($List)), "|")
       _FTP_FileDelete($FTPConnect, $File[1])
       _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Le fichier " & $File[1] & "a été supprimé !")
       _List()

     Case $ButtonNewDir
       _FTP_DirCreate($FTPConnect, ".\Nouveau dossier (" & $Dirs[0][0]+1 & ")")
       _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Nouveau dossier créé !")
       _List()

     Case $ButtonShowDir
       $Dir = StringSplit(GUICtrlRead(GUICtrlRead($DirList)), "|")
       _FTP_DirSetCurrent($FTPConnect, "\" & $Dir[1])
       _List()

     Case $ButtonRenameDir
       $Dir = StringSplit(GUICtrlRead(GUICtrlRead($DirList)), "|")
       $InputBox = InputBox("Renommez le dossier selectionné", "Nouveau nom :")
       _FTP_FileRename($FTPConnect, $Dir[1], $InputBox)
       _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Le dossier " & $Dir[1] & " à été renommé en " & $InputBox)
       _List()

     Case $ButtonDeleteDir
       $Dir = StringSplit(GUICtrlRead(GUICtrlRead($DirList)), "|")
       _FTP_DirDelete($FTPConnect, $Dir[1])
       If @ERROR Then
         GUICtrlSetColor($Edit, "0xFF0000")
         _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Impossible, le dossier " & $Dir[1] & " n'est pas vide !")
       Else
         _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Le dossier " & $Dir[1] & " a été supprimé !")
       EndIf
       _List()
   EndSwitch
WEnd

Func _Disable()
   GUICtrlSetState($ButtonIndex, $GUI_DISABLE)
   GUICtrlSetState($ButtonLogout, $GUI_DISABLE)
   GUICtrlSetState($ButtonDownload, $GUI_DISABLE)
   GUICtrlSetState($ButtonUpload, $GUI_DISABLE)
   GUICtrlSetState($ButtonRename, $GUI_DISABLE)
   GUICtrlSetState($ButtonDelete, $GUI_DISABLE)

   GUICtrlSetState($ButtonRenameDir, $GUI_DISABLE)
   GUICtrlSetState($ButtonDeleteDir, $GUI_DISABLE)
   GUICtrlSetState($ButtonNewDir, $GUI_DISABLE)
   GUICtrlSetState($ButtonShowDir, $GUI_DISABLE)
EndFunc

Func _Edit($Message)
   $TextEdit = GUICtrlRead($Edit) & $Message & @CRLF
   GUICtrlSetData($Edit, $TextEdit)
EndFunc

Func _List()
   _GUICtrlListView_DeleteAllItems($List)
   _GUICtrlListView_DeleteAllItems($DirList)
   Global $Files = _FTP_ListToArrayEx($FTPConnect, 2)
   If $Files[0][0] > 0 Then
     _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Enumération des fichiers...")
     For $I = 1 To $Files[0][0]
       GUICtrlCreateListViewItem($Files[$I][0] & "|" & Round($Files[$I][1]/1024, 2) & " Ko(s)|" & $Files[$I][3], $List)
     Next
   EndIf
   Global $Dirs = _FTP_ListToArrayEx($FTPConnect, 1)
   If $Dirs[0][0] > 0 Then
     _Edit("[" & $User & " - " & @HOUR & ":" & @MIN & ":" & @SEC & "] Enumération des dossiers...")
     For $I = 1 To $Dirs[0][0]
       GUICtrlCreateListViewItem($Dirs[$I][0] & "|" & Round($Dirs[$I][1]/1024, 2) & " Ko(s)|" & $Dirs[$I][3], $DirList)
     Next
   EndIf
EndFunc

Func _Quit()
   If $FTP = 1 Then _FTP_Close($FTPConnect)
   Exit
EndFunc


Désolé si le code n'est pas commenté, mais je pense qu'il est assez simple à comprendre.
Toutefois si vous avez des questions sur celui n'hésitez pas.

Ensuite, quelques captures et la description de l'interface:



Pas de panique !







L'interface parait compliquée, mais non !

En haut, c'est l'index. J'appel "index" l'accueil du FTP (la source si vous préférez).
Donc en cliquant sur le bouton "index", vous y allez (et vous rafraîchissez la listes des fichiers qui y sont contenu, pour le reste, c'est automatique).

A gauche, ce sont les fichiers et à droite, les dossiers Wink
(Je dis a gauche/droite en me basant sur le centre de la fenêtre, donc on a un bouton Renommez pour les fichiers et un bouton Renommez pour les dossiers...

Pour voir le contenu d'un dossier, bah vous cliquez sur le bouton "voir contenu". Non, c'est pas un piège, je suis sérieux Okay

En bas, c'est l'historique des actions effectuées et des erreurs rencontrées.

Les fichiers que vous téléchargez sont situés dans C:\User\***\AppData\Roaming\FTP Management\L'IP du serveur sur lequel vous avez téléchargé.

Au lancement du programme, les champs "IP", "Utilisateur" et "Mot de passe" sont automatiquement remplis avec les infos de la dernière connexion effectuée.

Par contre, si vous n'avez pas tout les droits, certains boutons ne marcherons pas !


Et pour finir, le lien de téléchargement: https://www.sendspace.com/file/jnyd0w

Voila, c'est du vu et revu mais au moins là vous avez le code, et surtout c'est fonctionnel.
Et signalez moi les bugs rencontrés si il y en a Okay

Dylan.



Dernière édition par XtR3m_St4RkY le Sam 24 Jan 2015 - 13:01; édité 2 fois

______________________________________________________
Viens découvrir INTERPOL, un nouveau langage interprété !

Yahoo Messenger
Message Publicité 
PublicitéSupprimer les publicités ?


Répondre en citant
Message FTP Management 
Ah cool ! bravo, seul problème à mon gout : on ne peut pas redimensionner la fenêtre, car là les cases sont petites quand on as 2654 fichiers dans un dossier Wink
Et si on double clique sur un dossier, ça serai bien que ça affiche son contenue Wink et si tu pouvais gérer les Chomd Laughing

J'en demande beaucoup Mort de Rire

Sinon ses points fort : l'ergonomie, sa simplicité et son format portable Okay




______________________________________________________
Visiter le site web du posteur
Répondre en citant
Message FTP Management 
Hello,

L'interface à bien changée depuis la dernière fois ! Le point fort est l'ergonomie de ton programme et la portabilité (ça va beaucoup me servir pour l'un de mes Projets)



Quelques idées:

- Ajoutes une petite image lorsque c'est un "dossier / fichier / photo / ..." | devant le nom du | "dossier / fichier / photo / ..." .
- La re-dimension des fenêtres (comme l'a évoqué Skywalker, c'est pratique quand tu as pleins de fichiers à afficher).
- Le téléchargement des fichiers se fait dans un dossier que l'on pourrait choisir / Ou bien où est situé l'.exe

Après là c'est plus côté technique:

- La possibilité de pouvoir pré-remplir les champs de connexion, etc.. via le Cmd



Voilà, sinon c'est vraiment pas mal.
Notre cher Hackoo va avoir de la concurrence Mr. Green

@++




______________________________________________________
Une question ? N'hésitez pas à me contacter par Message Privé ou via le topique concerné.
Visiter le site web du posteur
Répondre en citant
Message FTP Management 
Ok, je prends en compte vos suggestions, je m'occupe de ça demain Wink




______________________________________________________
Viens découvrir INTERPOL, un nouveau langage interprété !

Yahoo Messenger
Répondre en citant
Message FTP Management 
Merci Dylan,

Super client FTP

Okay




______________________________________________________
AffPng.exe , StringBetween.exe , Hex2Png.exe
Répondre en citant
Message FTP Management 
Merci Wink

Lien mis a jour, bugs mineurs corrigés (des oublis de ma part Embarassed )




______________________________________________________
Viens découvrir INTERPOL, un nouveau langage interprété !

Yahoo Messenger
Message FTP Management 


Montrer les messages depuis:
Répondre au sujet Page 1 sur 1
  



Index | créer un forum | Forum gratuit d’entraide | Annuaire des forums gratuits | Signaler une violation | Conditions générales d'utilisation
Copyright 2008 - 2016 // Batch