AutoIT [SOURCE & DOWNLOAD]TidyFTP FTP Client

Stato
Discussione chiusa ad ulteriori risposte.

Zyrel

Utente Electrum
3 Gennaio 2009
425
31
27
156
Ultima modifica:
Ciao a tutti, ci ho lavorato un po' (non molto xd 4 giorni) ed è saltato fuori uno pseudo client FTP non bruttissimo, vi posto qualche screen:
ftpqv.jpg

ftp2g.jpg


Tra le sue funzioni vi sono:
  • Elenco file con relative icone
  • possibilità di creare directory
  • possibilità di cancellare directory
  • possibilità di uploadare files
  • possibilità di rinominare files
  • possibilità di cancellare files
  • possibilità di ottenere molte info sui files (screen)
  • possibilità di scaricare un qualunque file
  • possibilità di salvare i dati di login

xD direi che è tutto, e come direbbero questi amorevoli figliuoli:
[align=center]
bimbi******.gif
[/align]
Commentate pure se volete, e naturalmente scaricate :asd:
[size=large][align=center]DOWNLOAD[/align][/size]

Ed ecco per i più maliziosi (e saggi secondo me:asd: ) la scansione:
Risultato 1/40
Codice:
a-squared	4.5.0.50	2010.05.10	-
AhnLab-V3	2010.05.12.01	2010.05.12	-
AntiVir	8.2.1.236	2010.05.12	-
Antiy-AVL	2.0.3.7	2010.05.12	-
Authentium	5.2.0.5	2010.05.12	-
Avast	4.8.1351.0	2010.05.12	-
Avast5	5.0.332.0	2010.05.12	-
AVG	9.0.0.787	2010.05.12	-
BitDefender	7.2	2010.05.12	-
CAT-QuickHeal	10.00	2010.05.12	-
ClamAV	0.96.0.3-git	2010.05.12	-
Comodo	4828	2010.05.12	-
DrWeb	5.0.2.03300	2010.05.12	-
eSafe	7.0.17.0	2010.05.11	-
eTrust-Vet	35.2.7483	2010.05.12	-
F-Prot	4.5.1.85	2010.05.12	-
F-Secure	9.0.15370.0	2010.05.12	Suspicious:W32/Malware!Gemini
Fortinet	4.1.133.0	2010.05.12	-
GData	21	2010.05.12	-
Ikarus	T3.1.1.84.0	2010.05.12	-
Jiangmin	13.0.900	2010.05.12	-
Kaspersky	7.0.0.125	2010.05.12	-
McAfee	5.400.0.1158	2010.05.12	-
McAfee-GW-Edition	2010.1	2010.05.12	-
Microsoft	1.5703	2010.05.12	-
NOD32	5108	2010.05.12	-
Norman	6.04.12	2010.05.12	-
nProtect	2010-05-12.01	2010.05.12	-
Panda	10.0.2.7	2010.05.11	-
PCTools	7.0.3.5	2010.05.12	-
Rising	22.47.02.04	2010.05.12	-
Sophos	4.53.0	2010.05.12	-
Sunbelt	6294	2010.05.12	-
Symantec	20101.1.0.89	2010.05.12	-
TheHacker	6.5.2.0.279	2010.05.11	-
TrendMicro	9.120.0.1004	2010.05.12	-
TrendMicro-HouseCall	9.120.0.1004	2010.05.12	-
VBA32	3.12.12.4	2010.05.12	-
ViRobot	2010.5.12.2312	2010.05.12	-
VirusBuster	5.0.27.0	2010.05.12	-

:bye:

Edit, oggi visto che non sapevo che fare ho deciso di postare il source completo del programma.... bè si ammetto che è scritto in modo piuttosto disordinato e alcune funzioni le potevo strutturare meglio.... ma è il mio stile (purtroppo):p :asd::asd:
Ecco a voi:
Codice:
;~ ================================================================================
;~ Program Name: Tidy FTP -FTP CLIENT-
;~ Author: Zyrel
;~ Distribuited on: Unfair-Gamers.com
;~ Version: 1.0.0
;~ Language: Italian
;~ Thanks to the creator of the <FTPEx.au3> header
;~ Thanks to MSDN.com
;~ PLEASE DON'T LEECH, IF YOU USE OR POSTS THIS SOURCE REPORT CREDITS OF AUTHOR.
;~ ===============================================================================
#include <ButtonConstants.au3>
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <GuiStatusBar.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <FTPEx.au3>
#include <Array.au3>
#include <GuiHeader.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
#include <GUIMenu.au3>
#include <ProgressConstants.au3>
#include <AVIConstants.au3>
#include <Sound.au3>
#RequireAdmin
#AutoIt3Wrapper_Run_Obfuscator=y
FileInstall("C:\Users\*****\Desktop\AVI.avi",@ScriptDir&"\AVI.avi")
FileInstall("C:\Users\*****\Desktop\shutdown.wav",@ScriptDir&"\shutdown.wav")
FileInstall("C:\Users\*****\Desktop\startup.wav",@ScriptDir&"\startup.wav")
FileInstall("C:\Users\*****\Desktop\ico.ico",@ScriptDir&"\ico.ico")
Local $hIcons[2]
local $Control,$Text,$Row,$Col,$Type
$hIcons[0] = _WinAPI_LoadShell32Icon (23)
$hIcons[1] = _WinAPI_LoadShell32Icon (40)

Local $hImage
Local $First_r = True
Global Enum $idOpen = 1000, $idSave, $idInfo, $idDir
Local $First_Run = True
Local $press = False
$f_server = IniRead(@HomeDrive&"\sig.ini","INFO","Server","")
$f_id = IniRead(@HomeDrive&"\sig.ini","INFO","Id","")
$f_pass = IniRead(@HomeDrive&"\sig.ini","INFO","Pwd","")
$f_porta = IniRead(@HomeDrive&"\sig.ini","INFO","Porta","21")
#Region ### START Koda GUI section ### Form=c:\users\lagalla\desktop\unknown_pk\koda_1.7.2.8_b247_2010-04-15\forms\form1.kxf
$Form1_1 = GUICreate("TidyFtp                                                                                                              - FTP CLIENT BY ZYREL -", 617, 380, 192, 124)
GUISetIcon(@ScriptDir&"\ico.ico")
$gen = GuiCtrlCreateMenu("General")
$conn_m = GUICtrlCreateMenuItem("Login",$gen)
$refr = GUICtrlCreateMenuItem("Refresh",$gen)
$save = GUICtrlCreateMenuItem("Salva Dati Accesso",$gen)
$del1 = GUICtrlCreateMenuItem("Elimina Dati Accesso",$gen)
$opt = GuiCtrlCreateMenu("Azioni")
$scarica = GUICtrlCreateMenuItem("Scarica",$opt)
$set_dir = GUICtrlCreateMenuItem("Set Directory",$opt)
$info = GUICtrlCreateMenuItem("Info",$opt)
$cred = GuictrlCreateMenu("Credits")
$aut = GUICtrlCreateMenuItem("Creator",$cred)


$StatusBar1 = _GUICtrlStatusBar_Create($Form1_1, -1, "", BitOR($SBARS_TOOLTIPS,$WS_VISIBLE,$WS_CHILD))
Dim $StatusBar1_PartsWidth[3] = [100, 350, -1]
_GUICtrlStatusBar_SetParts($StatusBar1, $StatusBar1_PartsWidth)
_GUICtrlStatusBar_SetText($StatusBar1, "Status: Offline", 0)
_GUICtrlStatusBar_SetIcon($StatusBar1, 0 , _WinAPI_LoadShell32Icon (13))
_GUICtrlStatusBar_SetText($StatusBar1, "Operation: Not Correctly Done", 1)
_GUICtrlStatusBar_SetText($StatusBar1, @TAB & @TAB & "Distribuited By: Unfair-Gamers.com By Zyrel  ", 2)
_GUICtrlStatusBar_SetMinHeight($StatusBar1, 17)

$Group1 = GUICtrlCreateGroup("", 0, -8, 616, 57)
$Label1 = GUICtrlCreateLabel("Server:", 8, 16, 38, 17)
$ftp = GUICtrlCreateInput($f_server, 48, 14, 81, 21)
$Label2 = GUICtrlCreateLabel("UserName:", 136, 16, 57, 17)
$Input1 = GUICtrlCreateInput($f_id, 192, 14, 81, 21)
$Label3 = GUICtrlCreateLabel("Password:", 280, 16, 53, 17)
$Input2 = GUICtrlCreateInput($f_pass, 340, 14, 81, 21,BitOR($GUI_SS_DEFAULT_INPUT,$ES_PASSWORD))
$Label4 = GUICtrlCreateLabel("Porta:", 432, 16, 32, 17)
$Input3 = GUICtrlCreateInput($f_porta, 464, 14, 81, 21)
$Button1 = GUICtrlCreateButton("LOGIN", 552, 13, 57, 22)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$list = _GUICtrlListView_Create($Form1_1, "", 10, 55, 367, 255)
_GUICtrlListView_SetExtendedListViewStyle($list, BitOR($WS_BORDER ,$LVS_SORTDESCENDING,$LVS_NOSCROLL, $LVS_EX_SUBITEMIMAGES,$LVS_EX_UNDERLINEHOT ,$LVS_EX_BORDERSELECT ,$LVS_NOSORTHEADER ,$LVS_NOSCROLL ,$LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
$hImage = _GUIImageList_Create()
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($list, 0xFF0000, 16, 16))
_GUIImageList_Add($hImage, _GUICtrlListView_CreateSolidBitMap($list, 0x00FF00, 16, 16))
_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", -3)
_GUICtrlListView_SetImageList($list ,$hImage, 1)
;_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 116)
;_GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 115)
_GUICtrlListView_InsertColumn($list, 0, "File Name", 170)
_GUICtrlListView_InsertColumn($list, 1, "File Attributes", 60)
_GUICtrlListView_InsertColumn($list, 2, "File Size", 60)
_GUICtrlListView_InsertColumn($list, 3, "Last Edit", 77)
GUICtrlCreateLabel("Directory:",380,57)
$directory = GUICtrlCreateInput("/",430,55,120,17)
$refresh = GuiCtrlCreateButton("SET",555,52,58,21)
$Group_up = GUICtrlCreateGroup("Files Upload",378,85,240,75)
GUICtrlCreateLabel("File:", 387, 108)
$up = GuictrlCreateInput("",410,105,175,21)
$up_open = GUICtrlCreateButton("...",585,105,30,21)
$up_go = GuictrlcreateButton("UPLOAD",460, 130, 75, 21)
GUICtrlCreateGroup("", -99, -99, 1, 1)
$Group_dir = GuictrlCreateGroup("Directory E Files Manager:",378,165,240,145)
GUICtrlCreateLabel("Create Dir:", 387, 187)
$makedir_txt = GuictrlCreateInput("Name", 455, 185, 100, 21)
$make_dir_do = GUICtrlCreateButton("CREATE",563,185,50,21)
GUICtrlCreateLabel("Delete Dir" , 387 , 215, -1 , 21)
$del_dir_txt = GUICtrlCreateInput("Name", 455, 212 , 100, 21) 
$del_dir = GUICtrlCreateButton("DELETE", 563, 214, -1 , 21)
GUICtrlCreateLabel("Rename File:" , 387 , 244, -1 , 21)
$file_rn = GUICtrlCreateInput("New Name", 455, 242, 100, 21)
$file_rn_do = GUICtrlCreateButton("CREATE", 563 , 242, -1 , 21)
GUICtrlCreateLabel("Delete File:" , 387 , 276 , -1 , 21)
$file_del = GUICtrlCreateInput("Name", 455 , 274 , 100 , 21)
$file_del_do = GUICtrlCreateButton("DELETE", 563 , 273 , -1 , 21) 
GUICtrlCreateGroup("", -99, -99, 1, 1)
$UG = GUICtrlCreateLabel("http://unfair-gamers.com/forum/index.php", 10, 315, 250, 17)
GUICtrlSetFont(-1, 10, 400, 4, "MS Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetCursor (-1, 0)
$Rate = GUICtrlCreateLabel("Rate Me", 565, 315, 80, 17)
GUICtrlSetFont(-1, 10, 400, 4, "MS Serif")
GUICtrlSetColor(-1, 0x0000FF)
GUICtrlSetCursor (-1, 0)
GUISetState(@SW_SHOW)
#EndRegion ### END Koda GUI section ###
_GUICtrlListView_SetItemImage($list, 1, 1, 1)
$cont = 0
Func Check()
$col0 = _GUICtrlListView_GetColumnWidth($list,0)
If $col0 > 170 Then
_GUICtrlListView_SetColumnWidth($list,0,170)
EndIf
$col1 = _GUICtrlListView_GetColumnWidth($list,1)
If $col1 > 60 Then
_GUICtrlListView_SetColumnWidth($list,1,60)
EndIf
$col2 = _GUICtrlListView_GetColumnWidth($list,2)
If $col2 > 60 Then
_GUICtrlListView_SetColumnWidth($list,2,60)
EndIf
$col3 = _GUICtrlListView_GetColumnWidth($list,3)
If $col3 > 77 Then
_GUICtrlListView_SetColumnWidth($list,3,77)
EndIf
_GUICtrlListView_SetColumnWidth($list,3,77)
EndFunc

$over = 0
While 1

	$win = WinGetPos($Form1_1,"")
	$m_pos = MouseGetPos()
If $m_pos[0] >= $win[0] And $m_pos[0] <= $win[0] + $win[2] And $m_pos[1] >= $win[1] And $m_pos <= $win[1] + $win[3] Then
	$over = 0
If $m_pos[0] >= $win[0] + 10 And $m_pos[0] <= $win[0] + 377 And $m_pos[1] >= $win[1] + 115 And $m_pos[1] <= $win[1] + 368 Then
$over = 1
       GUIRegisterMsg($WM_COMMAND, "WM_COMMAND")
       GUIRegisterMsg($WM_CONTEXTMENU, "WM_CONTEXTMENU")
Else
$over = 0
EndIf
Else
$over = 0
EndIf
	;Check()
	$nMsg = GUIGetMsg()
	Switch $nMsg
	Case $GUI_EVENT_CLOSE
			Exit
		Case $save
			IniWrite(@HomeDrive&"\sig.ini","INFO","Server",GuiCtrlread($ftp))
			IniWrite(@HomeDrive&"\sig.ini","INFO","Id",GuiCtrlread($Input1))
			IniWrite(@HomeDrive&"\sig.ini","INFO","Pwd",GuiCtrlread($Input2))
			IniWrite(@HomeDrive&"\sig.ini","INFO","Porta",GuiCtrlread($Input3))
		Case $del1
			IniWrite(@HomeDrive&"\sig.ini","INFO","Server", "")
			IniWrite(@HomeDrive&"\sig.ini","INFO","Id","")
			IniWrite(@HomeDrive&"\sig.ini","INFO","Pwd","")
			IniWrite(@HomeDrive&"\sig.ini","INFO","Porta","21")
		Case $conn_m
			_GUICtrlListView_DeleteAllItems($list)
			$Net = Conn()
			Find(GuictrlRead($directory))
		    $press = True

		Case $Button1
			_GUICtrlListView_DeleteAllItems($list)
			$Net = Conn()
			Find(GuictrlRead($directory))
						$OpenS = _SoundOpen(@ScriptDir&"\"&$Net[6]&".wav")
			_SoundPlay ($OpenS,0)
		    $press = True

		Case $refr
			Conn()
			If $press = True Then
			_GUICtrlListView_DeleteAllItems($list)
			Find(GuictrlRead($directory))
			$First_Run = False
			 If $First_Run = False Then GUiCtrlSetData($refresh,"REFRESH")
			 Else
			$case = MsgBox(2,"ERRORE","DEVI PRIMA EFFETTUARE IL LOGIN")
			If $case = 3 Then Exit
			If $case = 10 Then Sleep(20)
			If $case = 5 Then Sleep(30)
			
			EndIf
			FinD1()	
		Case $refresh
			Conn()
			If $press = True Then
			_GUICtrlListView_DeleteAllItems($list)
			;Find(GuictrlRead($directory))
			$First_Run = False
			 If $First_Run = False Then GUiCtrlSetData($refresh,"REFRESH")
			 Else
			$case = MsgBox(2,"ERRORE","DEVI PRIMA EFFETTUARE IL LOGIN")
			If $case = 3 Then Exit
			If $case = 10 Then Sleep(20)
			If $case = 5 Then Sleep(30)
			EndIf
				FinD1()
		Case $scarica
			Scarica()
		Case $info
			FindV()
			FinD1()
        Case $set_dir
			$dir1 = Inputbox("Set Directory","Inserire la nuova directory:","/dir")
			GuiCtrlsetData($directory,$dir1)
						If $press = True Then
			_GUICtrlListView_DeleteAllItems($list)
			Find($dir1)
			$First_Run = False
			 If $First_Run = False Then GUiCtrlSetData($refresh,"REFRESH")
			 Else
			$case = MsgBox(2,"ERRORE","DEVI PRIMA EFFETTUARE IL LOGIN")
			If $case = 3 Then Exit
			If $case = 10 Then Sleep(20)
			If $case = 5 Then Sleep(30)
			EndIf
		Case $up_open
			$loc_up = FileOpenDialog("Carica...",@DesktopDir,"All Formats (*.*)",2)
			GuiCtrlsetData($up,$loc_up)
			$split = StringSplit($loc_up,"\")
			$max = _ArrayMax($split)
			FileWrite(@TempDir&"\tmp1.txt",$split[$max])
		Case $up_go
			If $press = True Then
			$Net = Conn()
			Find1()
		
			$dir2 = GuictrlRead($up)
			$dir3 = GuiCtrlRead($directory)
			If $dir3 = "/" Then
			   $dir3 = "/"
			Else
				$dir3 = GuiCtrlRead($directory)&"/"
			EndIf
			$red = FileRead(@TempDir&"\tmp1.txt")
			$put = _FtpPutFile($Net[4],$dir2,$dir3&$red)
			MsgBox(64,"INFORMATION","L' operazione è andata a buon fine"&@CR&"potrebbe essere necessario effettuare unrefresh per vedere le modifiche")
			Else
			$case = MsgBox(2,"ERRORE","DEVI PRIMA EFFETTUARE IL LOGIN")
			If $case = 3 Then Exit
			If $case = 10 Then Sleep(20)
			If $case = 5 Then Sleep(30)
			EndIf
			FileDelete(@TempDir&"\tmp1.txt")
		Case $make_dir_do
			$Net = Conn()
			If $press = True Then
			$make = _FTPMakeDir($Net[4],Guictrlread($directory)&"/"&GuiCtrlRead($makedir_txt))
			MsgBox(64,"INFORMATION","L' operazione è andata a buon fine"&@CR&"potrebbe essere necessario effettuare unrefresh per vedere le modifiche")
		Else
			$case = MsgBox(2,"ERRORE","DEVI PRIMA EFFETTUARE IL LOGIN")
			If $case = 3 Then Exit
			If $case = 10 Then Sleep(20)
			If $case = 5 Then Sleep(30)
			EndIf
		Case $del_dir
			
			If $press = True Then
			$Net = Conn()
			$dir3 = GuiCtrlRead($directory)
			If $dir3 = "/" Then
			   $dir3 = "/"
			Else
				$dir3 = GuiCtrlRead($directory)&"/"
			EndIf
			_FTPDelDir($Net[4],$dir3&GuiCtrlRead($del_dir_txt))
			MsgBox(64,"INFORMATION","L' operazione è andata a buon fine"&@CR&"potrebbe essere necessario effettuare unrefresh per vedere le modifiche")
			Else
			$case = MsgBox(2,"ERRORE","DEVI PRIMA EFFETTUARE IL LOGIN")
			If $case = 3 Then Exit
			If $case = 10 Then Sleep(20)
			If $case = 5 Then Sleep(30)
			EndIf
		
		Case $file_rn_do
			If $press = True Then
			$Net = Conn()
			$findv = FindV1()
			_FTPRenameFile($Net[4],$findv[0],GuictrlRead($file_rn))
			MsgBox(64,"INFORMATION","L' operazione è andata a buon fine"&@CR&"potrebbe essere necessario effettuare unrefresh per vedere le modifiche")
			Else
			$case = MsgBox(2,"ERRORE","DEVI PRIMA EFFETTUARE IL LOGIN")
			If $case = 3 Then Exit
			If $case = 10 Then Sleep(20)
			If $case = 5 Then Sleep(30)
			EndIf
		Case $file_del_do
			If $press = True Then
			$Net = Conn()
			$findv = FindV1()
			$dir3 = GuiCtrlRead($directory)
			If $dir3 = "/" Then
			   $dir3 = "/"
			Else
				$dir3 = GuiCtrlRead($directory)&"/"
			EndIf
			_FTPDelFile($Net[4],$dir3&GuictrlRead($file_del))
			MsgBox(64,"INFORMATION","L' operazione è andata a buon fine"&@CR&"potrebbe essere necessario effettuare unrefresh per vedere le modifiche")
			Else
			$case = MsgBox(2,"ERRORE","DEVI PRIMA EFFETTUARE IL LOGIN")
			If $case = 3 Then Exit
			If $case = 10 Then Sleep(20)
			If $case = 5 Then Sleep(30)
			EndIf
		Case $UG
			ShellExecute("http://unfair-gamers.com/forum/index.php")
		Case $Rate
			ShellExecute("http://www.unfair-gamers.com/forum/reputation.php?action=add&uid=390")
	    Case $aut
				Msgbox(65,"CREDITS",StringFormat("Il seguente client FTP è stato interamente realizzato da Zyrel\r\nnickname di Marco Lagalla, e ditribuito gratuitamente solo sul sito \r\nunfair-gamers.com, vietata con la seguente la vendita di tale programma.\r\nRilasciato sotto licenza GNU-GPL.\r\nVi auguro un buon uso del programma"))

		EndSwitch

	WEnd
_SoundClose($OpenS)
_FTP_Close($Net[4])
FileDelete(@TempDir&"\tmp1.txt")
FileDelete(@TempDir&"\tmp.txt")
Func Scarica()
	
	$Net = Conn()
	$dir = GuiCtrlRead($directory)
	Dim $handle
	Dim $DllRect
	Dim $array
	$cont = 0
	$FileInfo = _FTPFileFindFirst($Net[4],$dir,$handle,$DllRect)
	If $FileInfo[0] Then
		Do
			
		$txt = _GUICtrlListView_GetItemText($list,$cont)
		$focus = _GUICtrlListView_GetItemState($list,$cont,$LVIS_FOCUSED)
		If $FileInfo[10] = $txt And $focus = 1 Then
			FileWrite(@TempDir&"\tmp.txt",$FileInfo[10])
			$splitted = StringSplit($txt,".")
			$Max_split = _ArrayMax($splitted)
			$ftp_conn_string = "ftp://" & $Net[0] & ":" & $Net[1] & "@" & $Net[5] & $dir & $FileInfo[10]
			_Scarica($ftp_conn_string,$splitted[$Max_split])
			_FtpFileFindClose($handle, $DllRect)
		
	EndIf
	
				$FileInfo = _FtpFileFindNext($handle, $DllRect)
				$cont = $cont + 1
		   Until Not $FileInfo[0] 
		   
	   EndIf
	   
	EndFunc
Func Find($dir)
			$Net = Conn()
			$dir = GuiCtrlRead($directory)
			_FTP_DirSetCurrent($Net[4],$dir)
			Dim $handle
			Dim $DllRect
			Dim $array
			$cont = 0
 			$FileInfo = _FTPFileFindFirst($Net[4],$dir,$handle,$DllRect)
			If $FileInfo[0] Then
				Do
				$dl_file = $FileInfo[10]
				$riga = Add_Riga($list,$dl_File)	
			   Add_Sub($list,$cont,1,$FileInfo[1]) 
			   Add_Sub($list,$cont,2,Round($FileInfo[9]/1024)&"KB") 
			   Add_Sub($list,$cont,3,$FileInfo[7]) 
			   If $FileInfo[1] = "128" Then 
				$split3 = StringSplit($FileInfo[10],".")
				$Max_split3 = _ArrayMax($split3)

				If $split3[$Max_split3] = "txt" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 70), 0)
				If $split3[$Max_split3] = "html" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 220), 0)
				If $split3[$Max_split3] = "htm" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 220), 0)
				If $split3[$Max_split3] = "gif" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "ico" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "jpg" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "jpeg" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "png" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "php" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 73), 0)
				If $split3[$Max_split3] = "js" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 91), 0)
				If $split3[$Max_split3] = "css" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 69), 0)
				If $split3[$Max_split3] = "exe" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", -3), 0)
				If $split3[$Max_split3] <> "txt" And $split3[$Max_split3] <> "html" And $split3[$Max_split3] <> "htm" And $split3[$Max_split3] <> "gif" And $split3[$Max_split3] <> "jpg" And $split3[$Max_split3] <> "jepg" And $split3[$Max_split3] <> "png" And $split3[$Max_split3] <> "ico" And $split3[$Max_split3] <> "php" And $split3[$Max_split3] <> "js" And $split3[$Max_split3] <> "css" And $split3[$Max_split3] <> "exe" Then
				_GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 224), 0)
				EndIf
			  
		  EndIf
		  
			   If $FileInfo[1] = "16" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 3), 0)
			   
				
		       $FileInfo = _FtpFileFindNext($handle, $DllRect)
			   
			   $cont = $cont + 1
		   Until Not $FileInfo[0]    

	   EndIf



   EndFunc
   Func FinD1()
	   $Net = Conn()
			$dir = GuiCtrlRead($directory)
			Dim $handle
			Dim $DllRect
			Dim $array
			$cont = 0
 			$FileInfo = _FTPFileFindFirst($Net[4],$dir,$handle,$DllRect)
			If $FileInfo[0] Then
				Do
				$dl_file = $FileInfo[10]
			$riga = Add_Riga($list,$dl_File)	
			   Add_Sub($list,$cont,1,$FileInfo[1]) 
			   Add_Sub($list,$cont,2,Round($FileInfo[9]/1024)&"KB")
			   Add_Sub($list,$cont,3,$FileInfo[7]) 
			   
			   				$split3 = StringSplit($FileInfo[10],".")
				$Max_split3 = _ArrayMax($split3)
				If $split3[$Max_split3] = "txt" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 70), 0)
				If $split3[$Max_split3] = "html" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 220), 0)
				If $split3[$Max_split3] = "htm" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 220), 0)
				If $split3[$Max_split3] = "gif" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "ico" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "jpg" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "jpeg" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "png" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "php" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 73), 0)
				If $split3[$Max_split3] = "js" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 91), 0)
				If $split3[$Max_split3] = "css" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 69), 0)
				If $split3[$Max_split3] = "exe" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", -3), 0)
				If $split3[$Max_split3] <> "txt" And $split3[$Max_split3] <> "html" And $split3[$Max_split3] <> "htm" And $split3[$Max_split3] <> "gif" And $split3[$Max_split3] <> "jpg" And $split3[$Max_split3] <> "jepg" And $split3[$Max_split3] <> "png" And $split3[$Max_split3] <> "ico" And $split3[$Max_split3] <> "php" And $split3[$Max_split3] <> "js" And $split3[$Max_split3] <> "css" And $split3[$Max_split3] <> "exe" Then
				_GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 224), 0)
				EndIf
			   
			   If $FileInfo[1] = "16" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 3), 0)
			   
				$FileInfo = _FtpFileFindNext($handle, $DllRect)
				$cont = $cont + 1
		   Until Not $FileInfo[0] 
		   
	   EndIf

EndFunc
   Func FindV()

			$Net = Conn()
			$dir = GuiCtrlRead($directory)
			Dim $handle
			Dim $DllRect
			Dim $array
			$cont = 0
 			$FileInfo = _FTPFileFindFirst($Net[4],$dir,$handle,$DllRect)
			If $FileInfo[0] Then
				Do
					$txt = _GUICtrlListView_GetItemText($list,$cont)
					$focus = _GUICtrlListView_GetItemState($list,$cont,$LVIS_FOCUSED)

					If $FileInfo[10] = $txt And $focus = 1 Then
				MsgBox(0, "Find Infomations", "File Attributes: "&$FileInfo[1] & @CR & "Creation Time Low: "&$FileInfo[2] & @CR & "Creation Time High: "&$FileInfo[3] & @CR & "Access Time Low: "&$FileInfo[4] & @CR & "Access Time High: "&$FileInfo[5] & @CR & "Last Write Low: "&$FileInfo[6] & @CR & "Last Write High: "&$FileInfo[7] & @CR & "File Size High: "&$FileInfo[8] & @CR & "File Size Low: "&$FileInfo[9]&"KB" & @CR & "File Name: "&$FileInfo[10] & @CR &"Alter Name: "&$FileInfo[11])
					ExitLoop
				EndIf
							$split3 = StringSplit($FileInfo[10],".")
				$Max_split3 = _ArrayMax($split3)
				If $split3[$Max_split3] = "txt" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 70), 0)
				If $split3[$Max_split3] = "html" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 220), 0)
				If $split3[$Max_split3] = "htm" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 220), 0)
				If $split3[$Max_split3] = "gif" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "ico" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "jpg" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "jpeg" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "png" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "php" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 73), 0)
				If $split3[$Max_split3] = "js" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 91), 0)
				If $split3[$Max_split3] = "css" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 69), 0)
				If $split3[$Max_split3] = "exe" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", -3), 0)
				If $split3[$Max_split3] <> "txt" And $split3[$Max_split3] <> "html" And $split3[$Max_split3] <> "htm" And $split3[$Max_split3] <> "gif" And $split3[$Max_split3] <> "jpg" And $split3[$Max_split3] <> "jepg" And $split3[$Max_split3] <> "png" And $split3[$Max_split3] <> "ico" And $split3[$Max_split3] <> "php" And $split3[$Max_split3] <> "js" And $split3[$Max_split3] <> "css" And $split3[$Max_split3] <> "exe" Then
				_GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 224), 0)
			EndIf
			
			   If $FileInfo[1] = "16" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 3), 0)
			   
				$FileInfo = _FtpFileFindNext($handle, $DllRect)
				$cont = $cont + 1
		   Until Not $FileInfo[0] 
		   
	   EndIf

EndFunc
   Func FindV1()
	   Local $Ret[2]
			$Net = Conn()
			$dir = GuiCtrlRead($directory)
			Dim $handle
			Dim $DllRect
			Dim $array
			$cont = 0
 			$FileInfo = _FTPFileFindFirst($Net[4],$dir,$handle,$DllRect)
			If $FileInfo[0] Then
				Do
					$txt = _GUICtrlListView_GetItemText($list,$cont)
					$focus = _GUICtrlListView_GetItemState($list,$cont,$LVIS_FOCUSED)
					$Ret[0] = $txt
					$Ret[1] = $focus 
					If $FileInfo[10] = $txt And $focus = 1 Then
					ExitLoop
					EndIf
								$split3 = StringSplit($FileInfo[10],".")
				$Max_split3 = _ArrayMax($split3)
				If $split3[$Max_split3] = "txt" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 70), 0)
				If $split3[$Max_split3] = "html" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 220), 0)
				If $split3[$Max_split3] = "htm" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 220), 0)
				If $split3[$Max_split3] = "gif" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "ico" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "jpg" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "jpeg" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "png" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 142), 0)
				If $split3[$Max_split3] = "php" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 73), 0)
				If $split3[$Max_split3] = "js" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 91), 0)
				If $split3[$Max_split3] = "css" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 69), 0)
				If $split3[$Max_split3] = "exe" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", -3), 0)
				If $split3[$Max_split3] <> "txt" And $split3[$Max_split3] <> "html" And $split3[$Max_split3] <> "htm" And $split3[$Max_split3] <> "gif" And $split3[$Max_split3] <> "jpg" And $split3[$Max_split3] <> "jepg" And $split3[$Max_split3] <> "png" And $split3[$Max_split3] <> "ico" And $split3[$Max_split3] <> "php" And $split3[$Max_split3] <> "js" And $split3[$Max_split3] <> "css" And $split3[$Max_split3] <> "exe" Then
				_GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 224), 0)
				EndIf

			If $FileInfo[1] = "16" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 3), 0)
			   
				$FileInfo = _FtpFileFindNext($handle, $DllRect)
				$cont = $cont + 1
		   Until Not $FileInfo[0] 
		   
	   EndIf
	Return $Ret
   EndFunc

Func Conn()
	Local $Ret[7]
			
			$Server = GuiCtrlRead($ftp)
			$ID = GuiCtrlRead($Input1)
			$Pass = GuiCtrlRead($Input2)
			$Porta = GuiCtrlRead($Input3)
			$Open = _FTPOpen("My FTP Control")
			$Conn = _FTPConnect($Open,$Server,$ID,$Pass,$Porta)
			If $Conn <> 0 Then 
				$true = 1
				_GUICtrlStatusBar_SetText($StatusBar1, "Status: Online", 0)
				_GUICtrlStatusBar_SetText($StatusBar1, "Operation: Correctly Working", 1)
			EndIf
			If $Conn = 0 Then 
				$true = 0
			_GUICtrlStatusBar_SetText($StatusBar1, "Status: Offline", 0)
			_GUICtrlStatusBar_SetText($StatusBar1, "Operation: An Error Occurred In Login", 1)
		EndIf
		If $true = 1 Then 
			$l = "startup"
		Else
			$l = "shutdown"
		EndIf
		$Ret[0] = $ID
		$Ret[1] = $Pass
		$Ret[2] = $Porta
		$Ret[3] = $Open
		$Ret[4] = $Conn
		$Ret[5] = $Server
		$Ret[6] = $l
		Return $Ret
EndFunc
Func Add_Riga($Control,$Text)
_GUICtrlListView_AddItem($Control, $Text, 0)
EndFunc
Func Add_Sub($Control,$Row,$Col,$Text)
_GUICtrlListView_AddSubItem($Control, $Row, $Text, $Col)
EndFunc
Func WM_COMMAND($hWnd, $iMsg, $iwParam, $ilParam)
       Switch $iwParam
               Case $idOpen
                       Scarica()
               Case $idInfo
                       FindV()
       EndSwitch
EndFunc
Func Folder_C()
					$Net = Conn()
					$dir = GuiCtrlRead($directory)
					Dim $handle
					Dim $DllRect
					Dim $array
					$cont = 0
					$FileInfo = _FTPFileFindFirst($Net[4],$dir,$handle,$DllRect)
					
					If $FileInfo[0] Then
						Do
					$txt = _GUICtrlListView_GetItemText($list,$cont)
					$focus = _GUICtrlListView_GetItemState($list,$cont,$LVIS_FOCUSED)
					$stringa = StringRight(Guictrlread($directory),1)
					If $FileInfo[1] = "16" Then
					
								
								If $FileInfo[10] = $txt And $focus = 1 Then
													If $stringa = "/" Then
														GuiCtrlSetData($directory,Guictrlread($directory)&$txt)
															_GUICtrlListView_DeleteAllItems($list)
														
															FindV()
														Else
														
														GuiCtrlSetData($directory,Guictrlread($directory)&"/"&$txt)
															_GUICtrlListView_DeleteAllItems($list)
															FindV()
													EndIf
													
								EndIf
			Else
			

			EndIf
			If $FileInfo[1] = "128" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", -3), 0)
			   If $FileInfo[1] = "16" Then _GUICtrlListView_SetItemImage($list, $cont,  _GUIImageList_AddIcon($hImage, @SystemDir & "\shell32.dll", 3), 0)
			   
				$FileInfo = _FtpFileFindNext($handle, $DllRect)
				$cont = $cont + 1
		   Until Not $FileInfo[0] 
		   
	   EndIf
	
			
EndFunc

Func WM_CONTEXTMENU($hWnd, $iMsg, $iwParam, $ilParam)
       Local $hMenu

       $hMenu = _GUICtrlMenu_CreatePopup ()
       _GUICtrlMenu_InsertMenuItem ($hMenu, 0, "Scarica", $idOpen)
      
       _GUICtrlMenu_InsertMenuItem ($hMenu, 3, "", 0)
       _GUICtrlMenu_InsertMenuItem ($hMenu, 3, "Info", $idInfo)
       _GUICtrlMenu_TrackPopupMenu ($hMenu, $iwParam)
       _GUICtrlMenu_DestroyMenu ($hMenu)
       Return True
   EndFunc 
   
 Func _Exit()
If @exitCode <> 0 Then	FileDelete(@TempDir&"\tmp.txt")
EndFunc

Func _FTPOpen($s_Agent, $l_AccessType = 1, $s_ProxyName = '', $s_ProxyBypass = '', $l_Flags = 0)
	
	Local $ai_InternetOpen = DllCall('wininet.dll', 'long', 'InternetOpen', 'str', $s_Agent, 'long', $l_AccessType, 'str', $s_ProxyName, 'str', $s_ProxyBypass, 'long', $l_Flags)
	If @error OR $ai_InternetOpen[0] = 0 Then
		SetError(-1)
		Return 0
	EndIf
		
	Return $ai_InternetOpen[0]
	
EndFunc 

Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0)
	
	Local $ai_InternetConnect = DllCall('wininet.dll', 'long', 'InternetConnect', 'long', $l_InternetSession, 'str', $s_ServerName, 'int', $i_ServerPort, 'str', $s_Username, 'str', $s_Password, 'long', $l_Service, 'long', $l_Flags, 'long', $l_Context)
	If @error OR $ai_InternetConnect[0] = 0 Then
		SetError(-1)
		Return 0
	EndIf
			
	Return $ai_InternetConnect[0]
	
EndFunc 
Func _FTPPutFile($l_FTPSession, $s_LocalFile, $s_RemoteFile, $l_Flags = 0, $l_Context = 0)

	Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpPutFile', 'long', $l_FTPSession, 'str', $s_LocalFile, 'str', $s_RemoteFile, 'long', $l_Flags, 'long', $l_Context)
	If @error OR $ai_FTPPutFile[0] = 0 Then
		SetError(-1)
		Return 0
	EndIf
	
	Return $ai_FTPPutFile[0]
	
EndFunc 
Func _FTPDelFile($l_FTPSession, $s_RemoteFile)
	
	Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpDeleteFile', 'long', $l_FTPSession, 'str', $s_RemoteFile)
	If @error OR $ai_FTPPutFile[0] = 0 Then
		SetError(-1)
		Return 0
	EndIf
	
	Return $ai_FTPPutFile[0]
	
EndFunc
Func _FTPRenameFile($l_FTPSession, $s_Existing, $s_New)
	
	Local $ai_FTPRenameFile = DllCall('wininet.dll', 'int', 'FtpRenameFile', 'long', $l_FTPSession, 'str', $s_Existing, 'str', $s_New)
	If @error OR $ai_FTPRenameFile[0] = 0 Then
		SetError(-1)
		Return 0
	EndIf
	
	Return $ai_FTPRenameFile[0]
	
EndFunc
Func _FTPMakeDir($l_FTPSession, $s_Remote)
	
	Local $ai_FTPMakeDir = DllCall('wininet.dll', 'int', 'FtpCreateDirectory', 'long', $l_FTPSession, 'str', $s_Remote)
	If @error OR $ai_FTPMakeDir[0] = 0 Then
		SetError(-1)
		Return 0
	EndIf
	
	Return $ai_FTPMakeDir[0]
	
EndFunc 
Func _FTPDelDir($l_FTPSession, $s_Remote)
	
	Local $ai_FTPDelDir = DllCall('wininet.dll', 'int', 'FtpRemoveDirectory', 'long', $l_FTPSession, 'str', $s_Remote)
	If @error OR $ai_FTPDelDir[0] = 0 Then
		SetError(-1)
		Return 0
	EndIf
		
	Return $ai_FTPDelDir[0]
	
EndFunc
Func _FTPClose($l_InternetSession)
	
	Local $ai_InternetCloseHandle = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $l_InternetSession)
	If @error OR $ai_InternetCloseHandle[0] = 0 Then
		SetError(-1)
		Return 0
	EndIf
	
	Return $ai_InternetCloseHandle[0]
	
EndFunc 
Func _FTPFileFindFirst($l_FTPSession, $s_RemoteFile, ByRef $h_Handle, ByRef $l_DllStruct, $l_Flags = 0, $l_Context = 0)

   Local $str  = "int;uint[2];uint[2];uint[2];int;int;int;int;char[256];char[14]"
   $l_DllStruct = DllStructCreate($str)
   if @error Then
 SetError(-2)
 Return ""
   endif

   Dim $a_FTPFileList[1]
   $a_FTPFileList[0] = 0

   Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpFindFirstFile', 'long', $l_FTPSession, 'str', $s_RemoteFile, 'ptr', DllStructGetPtr($l_DllStruct), 'long', $l_Flags, 'long', $l_Context)
If @error OR $ai_FTPPutFile[0] = 0 Then
 SetError(-1)
 Return $a_FTPFileList
EndIf
   $h_Handle = $ai_FTPPutFile[0]
   $FileName = DllStructGetData($l_DllStruct, 9)

   Dim $a_FTPFileList[12]
   $a_FTPFileList[0] = 12
   $a_FTPFileList[1] = DllStructGetData($l_DllStruct, 1)      ; File Attributes
   $a_FTPFileList[2] = DllStructGetData($l_DllStruct, 2, 1)   ; Creation Time Low
   $a_FTPFileList[3] = DllStructGetData($l_DllStruct, 2, 2)   ; Creation Time High
   $a_FTPFileList[4] = DllStructGetData($l_DllStruct, 3, 1)   ; Access Time Low
   $a_FTPFileList[5] = DllStructGetData($l_DllStruct, 3, 2)   ; Access Time High
   $a_FTPFileList[6] = DllStructGetData($l_DllStruct, 4, 1)   ; Last Write Low
   $a_FTPFileList[7] = DllStructGetData($l_DllStruct, 4, 2)   ; Last Write High
   $a_FTPFileList[8] = DllStructGetData($l_DllStruct, 5)      ; File Size High
   $a_FTPFileList[9] = DllStructGetData($l_DllStruct, 6)      ; File Size Low
   $a_FTPFileList[10] = DllStructGetData($l_DllStruct, 9)     ; File Name
   $a_FTPFileList[11] = DllStructGetData($l_DllStruct, 10)    ; Altername

   Return $a_FTPFileList

EndFunc
Func _FTPFileFindNext($h_Handle, $l_DllStruct)

   Dim $a_FTPFileList[1]
   $a_FTPFileList[0] = 0

   Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'InternetFindNextFile', 'long', $h_Handle, 'ptr', DllStructGetPtr($l_DllStruct))
If @error OR $ai_FTPPutFile[0] = 0 Then
 SetError(-1)
       Return $a_FTPFileList
EndIf

   Dim $a_FTPFileList[12]
   $a_FTPFileList[0] = 12
   $a_FTPFileList[1] = DllStructGetData($l_DllStruct, 1)      ; File Attributes
   $a_FTPFileList[2] = DllStructGetData($l_DllStruct, 2, 1)   ; Creation Time Low
   $a_FTPFileList[3] = DllStructGetData($l_DllStruct, 2, 2)   ; Creation Time High
   $a_FTPFileList[4] = DllStructGetData($l_DllStruct, 3, 1)   ; Access Time Low
   $a_FTPFileList[5] = DllStructGetData($l_DllStruct, 3, 2)   ; Access Time High
   $a_FTPFileList[6] = DllStructGetData($l_DllStruct, 4, 1)   ; Last Write Low
   $a_FTPFileList[7] = DllStructGetData($l_DllStruct, 4, 2)   ; Last Write High
   $a_FTPFileList[8] = DllStructGetData($l_DllStruct, 5)      ; File Size High
   $a_FTPFileList[9] = DllStructGetData($l_DllStruct, 6)      ; File Size Low
   $a_FTPFileList[10] = DllStructGetData($l_DllStruct, 9)     ; File Name
   $a_FTPFileList[11] = DllStructGetData($l_DllStruct, 10)    ; Altername

   Return $a_FTPFileList

EndFunc
Func _FTPFileFindClose($h_Handle, $l_DllStruct)

;~    DllStructDelete($l_DllStruct)
   
   Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $h_Handle)
If @error OR $ai_FTPPutFile[0] = 0 Then
 SetError(-1)
       Return ""
EndIf

Return $ai_FTPPutFile[0]
   
EndFunc
Func _FTPGetFile($l_FTPSession, $s_RemoteFile, $s_LocalFile, $l_Flags = 2, $l_Fail = -1, $l_Attributes = 0, $l_Context = 0)

   Local $ai_FTPGetFile = DllCall('wininet.dll', 'int', 'FtpGetFile', 'long', $l_FTPSession, 'str', $s_RemoteFile, 'str', $s_LocalFile, 'long', $l_Fail, 'long', $l_Attributes, 'long', $l_Flags, 'long', $l_Context)
   If @error OR $ai_FTPGetFile[0] = 0 Then
       SetError(-1)
       Return 0
   EndIf
   
   Return $ai_FTPGetFile[0]
   
EndFunc
Func _Scarica($URLFile,$est)

Local $Form2, $progressbar1,$var,$String,$String2,$var2,$hex,$SRando,$show,$msc,$Sleep,$Statu, $sdf,$sdf2, $saveas, $size, $begin, $s ,$GetActive ,$dif ,$o , $Timer , $FileSize , $Downloading ,$Progress ,$i , $percent ,$Cal ,$p ,$e, $Speed ,$sr ,$y , $timeleft,$ET,$KBLeft,$T,$r,$bak

While $String <= 0
$bak = ClipGet()
If @Error = 1 Then
    MsgBox(0, "Attenzione!!!", "Davvero Vuoi Uscire?.")
	Exit
EndIf
$String = StringInStr ($URLFile,"http://") Or StringInStr ($URLFile,"ftp://")
If  $String = 0 Then
MsgBox(0, "Errore", "Un errore non gestito è stato riscontrato.")
EndIf
WEnd
$var =  StringRight($URLFile,20)
$var2 = Random (0,10000,1)
$Name_read = Fileread(@TempDir&"\tmp.txt")
$saveas = FileSaveDialog("Salva...",@DesktopDir,"Alls Extentions (*.*)",2,$Name_read)
If @Error = 1 Then
	MsgBox(0, "Attenzione", "Non hai salvato il file")
	$String2 = StringInStr ($saveas,":\")
ElseIf  @Error = 0 Then
MsgBox(0, "Attenzione", "Il Tuo File Sarà salvato In :" &$saveas )
	EndIf
$size  =  InetGetSize($URLFile)
$begin = TimerInit()
$s = Int ($size / 1024)
$msc = InetGet($URLFile, $saveas , 1, 1)

$Form2 = GUICreate("DOWNLOAD MANAGER", 340, 155)
$Progress = GUICtrlCreateProgress(10, 5, 300, 20, $PBS_SMOOTH)
$FileSize =	   GUICtrlCreateLabel("File Size (KB) :", 10, 30, 200, 30)
$Downloading = GUICtrlCreateLabel("Downloading (KB) :", 10, 45, 200, 30) 
$Timer  =	   GUICtrlCreateLabel("Timer (Sec) :", 10, 60, 200, 30)
$Cal  =	   GUICtrlCreateLabel("% (Sec) :", 10, 75, 200, 30)
$Speed  =	   GUICtrlCreateLabel("Speed :", 10, 90, 200, 30)
$timeleft  =	   GUICtrlCreateLabel("Expectant Time In :", 10, 105, 200, 30)
$ET  =	   GUICtrlCreateLabel("Time Left :", 10, 120, 200, 30)
$KBLeft  =	   GUICtrlCreateLabel("KB Left :", 10, 135, 200, 30)
$Statu = GUICtrlCreateLabel("State",180, 40, 300, 70)
GUICtrlCreateAvi("AVI.avi",0, 280, 110, 32, 32, $ACS_AUTOPLAY)
	           GUISetState()
If $msc = 0 Then
	$sdf = "Impossibile connettersi" & @CRLF & "al server." & @CRLF & "Download fallito" & @CRLF & "Prova nuovamente."
Else
	$sdf2 = "Connessione al server effettuata." & @CRLF & "Il tuo download sta partendo."
EndIf
While @InetGetActive

$GetActive = (@InetGetBytesRead / 1024)
$percent = ($GetActive / $s ) *100
$dif = TimerDiff($begin)
$p = Int ($percent)
$o = Round ($dif / 1000 , 2)
$e = Int ($GetActive / $o)
$y = Round ( ($s / ($e * 60)) ,2  )
$r = Int ( $T / $e)
$T = Int  (( $size - @InetGetBytesRead ) /1024)
$show  = Hex($GetActive, 2)

GUICtrlSetData($Progress, $percent)
GUICtrlSetData($FileSize , "File Size :" & $s & " KB" )
GUICtrlSetData($Downloading , "Downloading :" & $GetActive & " KB" )
GUICtrlSetData($Timer ,"Timer :" & $o & " Sec" )
GUICtrlSetData($Cal ,"Complete :" & $p & " %" )
GUICtrlSetData($Speed , "Speed :" & $e  & " Kb/Sec")
GUICtrlSetData($ET , "Expectant Time In :" & $y  & " Min")
GUICtrlSetData($timeleft , "Time Left :" & $r  & " Sec")
GUICtrlSetData($KBLeft , "KB Left :" & $T   & " KB")
GUICtrlSetData($Statu , $sdf & $sdf2 & @CRLF & $show )
Sleep (500)

WEnd
$dif = TimerDiff($begin)
MsgBox(4096, "Download Completato", "Salvato In :" & $saveas & @CRLF & "File Size (KB) :" & $s & @CRLF & "Tempo Trascorso (Sec) :" & $o)
GuiDelete($Form2)
FileDelete(@TempDir&"\tmp.txt")
EndFunc
Sò già che è inutile ma lo scrivo lo stesso.... a questo programma ho lavorato quasi una settimana quindi gradirei che non venisse allegaramenente leechato ;)

Commentate pure :)
 
  • Mi piace
Reazioni: S4LV0DM
Scusa la domanda ****** a che server di preciso?

--- Aggiornamento Post ---

scusa la domanda sciocca a che serve di preciso?
 
Stato
Discussione chiusa ad ulteriori risposte.