HR78 Posted December 4, 2012 Posted December 4, 2012 (edited) hello.I have one script - ftp client and work perfect but I want connect automatik, remove the window for ftp server, username and password, and if I open the program to connect direct in $Ftpserver=" ", $username=" " and $password=" "Can someone modify it for me??this is code:expandcollapse popup#include <ComboConstants.au3> #include <GuiRichEdit.au3> #include <StructureConstants.au3> #include <ButtonConstants.au3> #include <StaticConstants.au3> #include <WindowsConstants.au3> #include <GUIConstantsEx.au3> #include <GUIComboBox.au3> #include <array.au3> #include <file.au3> #include <GUIListView.au3> #include <FTPEx.au3> #include <GuiMenu.au3> #include <Guiedit.au3> #include <Misc.au3> #include <GuiStatusBar.au3> #include <ProgressConstants.au3> #include <Timers.au3> #include <String.au3> #include <Date.au3> #include <Constants.au3> #include <GuiImageList.au3> #include "Includes\MouseHoverSetFocus.au3" #include "Includes\Messages.au3" Opt("MustDeclareVars", 1) Opt("TrayAutoPause", 0) If _Singleton("FTP Explorer V2", 1) = 0 Then MsgBox(0, "Warning", "An occurence of FTP Explorer V2 is already running") Exit EndIf If @Compiled Then Global $g_sWorker = _TempFile(@ScriptDir, "FTPWorker", ".a3x", 12) FileInstall('F:\AutoIt\FTP Explorer Project\Main\Compile\FTP Worker.a3x', $g_sWorker, 1) FileSetAttrib($g_sWorker, 'H') Else Global $g_sWorker = @ScriptDir & '\FTP Worker.au3' EndIf _StartCommunications() OnAutoItExitRegister('_ExitTime') #region Global Vars, Constants and Dlls............................... ;Dlls Global Enum $g_hPSAPI, $g_hUser32, $g_hKernel32, $g_hShell32, $DllMaX Global $aDll[$DllMaX] = [DllOpen("psapi.dll"), DllOpen("user32.dll"), DllOpen('kernel32.dll'), DllOpen('shell32.dll')] ;Constants Global Const $cRed = '255', $cGreen = '45824', $cBlue = '16711680', $cGray = '8421504';colors Global Const $cPink = '16711935', $cYellow = '65535', $cTeal = '16776960', $cPurp = '16711830';colors Global Const $FOLDER_ICON_INDEX = _GUIImageList_GetFileIconIndex(@SystemDir, 0, 1) Global Const $INTERNET_OPTION_RECEIVE_TIMEOUT = 6 ;FTP Connection Status Vars Global Enum $giUploading, $giDownloading, $giIdle, $giFinished; If you change these you must change the ones in FTP_Worker to be the same Global $FTP_State = $giIdle, $gbFTP_Connected = False, $gbFTP_NOReconnet = False Global $ghFTPOpen, $ghFTPConnect, $gsServer_Name, $gsServer_IP, $gaConnectionInfo[4], $ghFTPCallBack, $gaQueue[1] Global $CPU, $sComboFTP, $sComboLocal, $gsLocalCurrent Global $gaLocalHistory[20], $gaFTPHistory[20] ;Timers Global Enum $g_tCPU, $g_tTransfer, $g_tIdleClock, $g_bIdleClock, $MaXTimers Global $aTimers[$MaXTimers] $aTimers[$g_bIdleClock] = False ;FTP Connect GUI vars Global Enum $g_sIP, $g_iPort, $g_sUser, $g_sPass, $g_hIP, $g_sINIHistory, $MaxConnectGUI Global $aConnectGUI[$MaxConnectGUI] $aConnectGUI[$g_sINIHistory] = @ScriptDir & '\History.ini' #endregion Global Vars, Constants and Dlls............................... #region GUI........................................................... Global Enum $g_bActive, $g_sTitle, $g_iWidth, $g_iHeight, $g_hGUI, $g_FileMenu, $g_FileItem1, $g_FileItem2, $g_FileItem3, $g_HelpMenu, $g_HelpItem1, $g_HelpItem2, $g_LocalList, _ $g_FTPList, $g_QueueList, $g_StatusList, $g_lbFTPCount, $g_lbLocalCount, $g_cbFTP, $g_cbLocal, $g_bFTPBack, $g_bLocalBack, $g_hStatusBar, $g_hProgressBar, $g_hImageList, _ $g_iUpICO, $g_iDownICO, $g_iParentICO, $MaxGUI Global $aGUI[$MaxGUI] $aGUI[$g_sTitle] = "Explorer V2" $aGUI[$g_iWidth] = 880 $aGUI[$g_iHeight] = 541 $aGUI[$g_hGUI] = GUICreate($aGUI[$g_sTitle], $aGUI[$g_iWidth], $aGUI[$g_iHeight]) GUISetStyle(BitOR($WS_MAXIMIZEBOX, $WS_MINIMIZEBOX, $WS_SYSMENU, $WS_CAPTION, $WS_POPUP, $WS_POPUPWINDOW, $WS_GROUP, $WS_TABSTOP, $WS_BORDER, $WS_CLIPSIBLINGS), -1, $aGUI[$g_hGUI]) $aGUI[$g_FileMenu] = GUICtrlCreateMenu("&File") $aGUI[$g_FileItem1] = GUICtrlCreateMenuItem("Connect", $aGUI[$g_FileMenu]) $aGUI[$g_FileItem2] = GUICtrlCreateMenuItem("Disconnect", $aGUI[$g_FileMenu]) $aGUI[$g_FileItem3] = GUICtrlCreateMenuItem("Exit", $aGUI[$g_FileMenu]) $aGUI[$g_HelpMenu] = GUICtrlCreateMenu("&Help") $aGUI[$g_HelpItem1] = GUICtrlCreateMenuItem("How To Use", $aGUI[$g_HelpMenu]) $aGUI[$g_HelpItem2] = GUICtrlCreateMenuItem("About", $aGUI[$g_HelpMenu]) $aGUI[$g_LocalList] = GUICtrlCreateListView("File", 4, 22, 429, 250, $LVS_SHOWSELALWAYS) $aGUI[$g_FTPList] = GUICtrlCreateListView("File", 444, 22, 429, 250, $LVS_SHOWSELALWAYS) $aGUI[$g_QueueList] = GUICtrlCreateListView("Name|Target", 4, 291, 429, 201, $LVS_SHOWSELALWAYS) _GUICtrlListView_SetExtendedListViewStyle($aGUI[$g_QueueList], BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES)) $aGUI[$g_StatusList] = _GUICtrlRichEdit_Create($aGUI[$g_hGUI], "", 444, 291, 429, 201, BitOR($ES_MULTILINE, $WS_VSCROLL, $WS_HSCROLL, $ES_READONLY)) _RichEdit_AppendColor('FTP Explorer V2', '45824', True) $aGUI[$g_lbFTPCount] = GUICtrlCreateLabel("", 444, 272, 428, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE)) $aGUI[$g_lbLocalCount] = GUICtrlCreateLabel("", 5, 272, 428, 17, BitOR($SS_CENTER, $SS_CENTERIMAGE)) $aGUI[$g_cbFTP] = GUICtrlCreateCombo("", 470, 0, 403, 25) $aGUI[$g_bFTPBack] = GUICtrlCreateButton("Button1", 444, 0, 25, 21, $BS_ICON) GUICtrlSetTip(-1, 'Navigate Back') $aGUI[$g_cbLocal] = GUICtrlCreateCombo("", 30, 0, 403, 25) $aGUI[$g_bLocalBack] = GUICtrlCreateButton("Button1", 4, 0, 25, 21, $BS_ICON) GUICtrlSetTip(-1, 'Navigate Back') _Statusbar(1) Global $GUI_AccelTable[1][2] = [["!+h", $aGUI[$g_FileItem3]]] GUISetAccelerators($GUI_AccelTable) GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") GUIRegisterMsg($WM_COMMAND, "WM_COMMAND") GUIRegisterMsg($WM_SIZE, "WM_SIZE") If @Compiled Then GUICtrlSetImage($aGUI[$g_bFTPBack], @ScriptFullPath, -5, 0) GUICtrlSetImage($aGUI[$g_bLocalBack], @ScriptFullPath, -5, 0) $aGUI[$g_hImageList] = _GUIImageList_GetSystemImageList() $aGUI[$g_iDownICO] = _GUIImageList_AddIcon($aGUI[$g_hImageList], @ScriptFullPath, 6) + 1 $aGUI[$g_iUpICO] = _GUIImageList_AddIcon($aGUI[$g_hImageList], @ScriptFullPath, 5) + 1 Else GUICtrlSetImage($aGUI[$g_bLocalBack], @ScriptDir & '\Icons\back.ico', 0, 0) GUICtrlSetImage($aGUI[$g_bFTPBack], @ScriptDir & '\Icons\back.ico', 0, 0) $aGUI[$g_hImageList] = _GUIImageList_GetSystemImageList() $aGUI[$g_iDownICO] = _GUIImageList_AddIcon($aGUI[$g_hImageList], @ScriptDir & '\Icons\Down.ico') + 1 $aGUI[$g_iUpICO] = _GUIImageList_AddIcon($aGUI[$g_hImageList], @ScriptDir & '\Icons\Up.ico') + 1 EndIf _GUICtrlListView_SetImageList($aGUI[$g_LocalList], $aGUI[$g_hImageList], 1) _GUICtrlListView_SetImageList($aGUI[$g_FTPList], $aGUI[$g_hImageList], 1) _GUICtrlListView_SetImageList($aGUI[$g_QueueList], $aGUI[$g_hImageList], 1) _GUICtrlListView_SetImageList($aGUI[$g_QueueList], $aGUI[$g_hImageList], 2) _GUICtrlListView_SetColumnWidth($aGUI[$g_QueueList], 0, 217) _GUICtrlListView_SetColumnWidth($aGUI[$g_QueueList], 1, 208) _GUICtrlRichEdit_SetLimitOnText($aGUI[$g_StatusList], 100000) _MouseHover_SetFocus($aGUI[$g_QueueList]) _MouseHover_SetFocus($aGUI[$g_FTPList]) _MouseHover_SetFocus($aGUI[$g_LocalList]) _MouseHover_SetFocus($aGUI[$g_StatusList]) _MouseHover_Enable() #endregion GUI........................................................... #region Control Handles............................................... Global Enum $g_hQueuelist, $g_hLocalList, $g_hFTPList, $g_hLocalCombo, $g_hFTPCombo, $g_hFTPListHeader, $g_hLocalListHeader, $MaxHandles Global $aHandles[$MaxHandles] $aHandles[$g_hQueuelist] = GUICtrlGetHandle($aGUI[$g_QueueList]) $aHandles[$g_hLocalList] = GUICtrlGetHandle($aGUI[$g_LocalList]) $aHandles[$g_hFTPList] = GUICtrlGetHandle($aGUI[$g_FTPList]) $aHandles[$g_hLocalCombo] = GUICtrlGetHandle($aGUI[$g_cbLocal]) $aHandles[$g_hFTPCombo] = GUICtrlGetHandle($aGUI[$g_cbFTP]) $aHandles[$g_hFTPListHeader] = HWnd(_GUICtrlListView_GetHeader($aHandles[$g_hFTPList])) $aHandles[$g_hLocalListHeader] = HWnd(_GUICtrlListView_GetHeader($aHandles[$g_hLocalList])) #endregion Control Handles............................................... #region Startup Initiations........................................... _Check_INI_File() _Columns($aHandles[$g_hFTPList], 'FTPColumns', True) _Columns($aHandles[$g_hLocalList], 'LocalColumns', True) $aTimers[$g_tCPU] = _Timer_SetTimer($aGUI[$g_hGUI], 1000, "_CPU_IdleClock_Update") _MyComputer() GUISetState(@SW_SHOW, $aGUI[$g_hGUI]) _FTP_Connect_GUI() If $aDll[$g_hPSAPI] <> -1 Then AdlibRegister('_ReduceMemory', 60000) _ReduceMemory() ;~ Sleep(2000) #endregion Startup Initiations........................................... #region Main Loop..................................................... While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE, $aGUI[$g_FileItem3] If $FTP_State <> $giIdle Then Local $bMouseHover = _MouseHover_Disable() If MsgBox(36 + 262144, 'Transfer in Progress!', 'Are you sure you want to abort current transfer and quit?') = 7 Then If $bMouseHover Then _MouseHover_Enable() ContinueLoop Else IniWrite($aConnectGUI[$g_sINIHistory], 'Abort', 'Abort', 3); 3 means exit EndIf Else _MsgSend('Worker', 3 & ';');tell worker to disconnect and exit EndIf _FTP_Disconnect() Do Sleep(100) Until Not _IsReceiver('Worker') Exit Case $GUI_EVENT_RESTORE, $GUI_EVENT_MAXIMIZE If $FTP_State <> $giIdle Then Local $FileNameLen If ($aGUI[$g_iWidth] / 2) > 480 Then $FileNameLen = ($aGUI[$g_iWidth] / 2) Else $FileNameLen = $aGUI[$g_iWidth] - 580 ; ;[75, ?, 80, 80, 80, 140, 200] EndIf Local $StatusBar_PartsWidth[7] = [75, $FileNameLen, $FileNameLen + 80, $FileNameLen + 160, $FileNameLen + 240, $FileNameLen + 380, -1] _GUICtrlStatusBar_SetParts($aGUI[$g_hStatusBar], $StatusBar_PartsWidth) _GUICtrlStatusBar_EmbedControl($aGUI[$g_hStatusBar], 6, GUICtrlGetHandle($aGUI[$g_hProgressBar]), 4) Else Local $StatusBar_PartsWidth[4] = [200, ($aGUI[$g_iWidth] / 2), ($aGUI[$g_iWidth] - 80), -1] _GUICtrlStatusBar_SetParts($aGUI[$g_hStatusBar], $StatusBar_PartsWidth) EndIf _Resize_Rich_Edit() Case $aGUI[$g_FileItem1] ;connect _FTP_Connect_GUI() Case $aGUI[$g_FileItem2] ;disconnect If $FTP_State <> $giIdle Then Local $bMouseHover = _MouseHover_Disable() If MsgBox(36 + 262144, 'Transfer in Progress!', 'Are you sure you want to abort current transfer and disconnet?') = 7 Then If $bMouseHover Then _MouseHover_Enable() ContinueLoop Else ;~ $gbFTP_NOReconnet = True IniWrite($aConnectGUI[$g_sINIHistory], 'Abort', 'Abort', 2);This will make the call to _FTP_Disconnect EndIf If $bMouseHover Then _MouseHover_Enable() Else _MsgSend('Worker', 2 & ';') _FTP_Disconnect() EndIf GUICtrlSetState($aGUI[$g_FileItem1], $GUI_ENABLE) Case $aGUI[$g_bFTPBack] _FTPBack() Case $aGUI[$g_bLocalBack] _LocalBack() ;~ Case $aGUI[$g_HelpItem1] Case $aGUI[$g_HelpItem2] _About("About Info", "FTP Explorer", "Copyright © " & @YEAR & " Brian J Christy. All rights reserved.", "v2.2", "", "http://www.autoitscript.com", _ 'Contact Me', "mailto:FreeFTPExplorer@gmail.com", "Written with AutoIT", "http://www.autoitscript.com/", @AutoItExe, 0x0000FF, 0xFFFFFF, -1, -1, -1, -1, $aGUI[$g_hGUI]) EndSwitch WEnd #endregion Main Loop..................................................... #region Transfer and Queue Functions.................................. Func _Transfer($hWnd, $Msg, $iIDTimer, $dwTime) If $FTP_State = $giUploading Or $FTP_State = $giDownloading Then Return If $FTP_State = $giFinished Then ; Set by FTP worker _ArrayDelete($gaQueue, 1) _GUICtrlListView_DeleteItem($aHandles[$g_hQueuelist], 0) EndIf Static $Up = False, $down = False If (UBound($gaQueue) - 1) > 0 Then Local $aSplit = StringSplit($gaQueue[1], ';') Else $FTP_State = $giIdle _Timer_KillTimer($aGUI[$g_hGUI], $aTimers[$g_tTransfer]) If $Up Then _FtpRefresh($INTERNET_FLAG_RELOAD) If $down Then _LocalGo($gsLocalCurrent) $Up = False $down = False _Statusbar(2) Return EndIf Select Case $aSplit[1] = 'upload' _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], 'Uploading', 0) If $aSplit[2] = 'DIR' Then _MsgSend('Worker', 6 & ';' & $aSplit[3] & $aSplit[4] & ';' & $aSplit[5] & $aSplit[4]) Else _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], $aSplit[4], 1) _MsgSend('Worker', 4 & ';' & $aSplit[3] & ';' & $aSplit[4] & ';' & $aSplit[5]) EndIf $Up = True Case $aSplit[1] = 'download' _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], 'Downloading', 0) If $aSplit[2] = 'DIR' Then _MsgSend('Worker', 7 & ';' & $aSplit[5] & ';' & $aSplit[4] & ';' & $aSplit[3]) Else _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], $aSplit[4], 1) _MsgSend('Worker', 5 & ';' & $aSplit[3] & ';' & $aSplit[4] & ';' & $aSplit[5] & ';' & $aSplit[6]) EndIf $down = True EndSelect EndFunc ;==>_Transfer Func _QueueItems($hList) Local $aSelected, $i, $sFileName, $sItem, $sQueueItem Local $iIcon, $sType, $hOtherList, $iDup, $tInfo, $sSource, $sDest If $hList = $aHandles[$g_hFTPList] Then $hOtherList = $aHandles[$g_hLocalList] Else $hOtherList = $aHandles[$g_hFTPList] EndIf $tInfo = DllStructCreate($tagLVFINDINFO) DllStructSetData($tInfo, "Flags", $LVFI_STRING) Local $sCurrentFTP = StringReplace(_FTP_DirGetCurrent($ghFTPConnect) & '/', '//', '/') Local $sCurrentLocal = StringReplace($gsLocalCurrent & '\', '\\', '\') Local $iUpDownIcon $aSelected = _GUICtrlListView_GetSelectedIndices($hList, True) For $i = 1 To $aSelected[0] $sFileName = _GUICtrlListView_GetItemText($hList, $aSelected[$i], 0) $iIcon = _GUICtrlListView_GetItemImage($hList, $aSelected[$i]) $iDup = _GUICtrlListView_FindItem($hOtherList, -1, $tInfo, $sFileName) If $iDup > 0 Then Local $bMouseHover = _MouseHover_Disable() If MsgBox(36, 'Confirm Overwrite', $sFileName & ' is already in the location you wish to send it to. Are you sure you want to replace it?') = 7 Then If $bMouseHover Then _MouseHover_Enable() ContinueLoop EndIf EndIf If $iIcon = $FOLDER_ICON_INDEX Then $sType = 'DIR' Else $sType = 'file' EndIf If $hList = $aHandles[$g_hFTPList] Then $sQueueItem = 'download;' & $sType & ';' & $sCurrentLocal & ';' & $sFileName & ';' & $sCurrentFTP & ';' & _FTP_FileGetSize($ghFTPConnect, $sFileName) $sSource = $sCurrentFTP & $sFileName $sDest = $sCurrentLocal $iUpDownIcon = $aGUI[$g_iDownICO] Else $sQueueItem = 'upload' & ';' & $sType & ';' & $sCurrentLocal & ';' & $sFileName & ';' & $sCurrentFTP $sSource = $sCurrentLocal & $sFileName $sDest = $sCurrentFTP $iUpDownIcon = $aGUI[$g_iUpICO] EndIf $sItem = _GUICtrlListView_AddItem($aGUI[$g_QueueList], $sSource, $iIcon) _GUICtrlListView_AddSubItem($aGUI[$g_QueueList], $sItem, $sDest, 1) _GUICtrlListView_SetItemStateImage($aGUI[$g_QueueList], $sItem, $iUpDownIcon) _ArrayAdd($gaQueue, $sQueueItem) Next EndFunc ;==>_QueueItems #endregion Transfer and Queue Functions.................................. #region Script Communication Functions................................ Func _StartCommunications() _MsgRegister('Boss', '_Receiver') Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $g_sWorker & '"') Do Sleep(100) Until _IsReceiver('Worker') EndFunc ;==>_StartCommunications Func _Receiver($Msg) Local $aMsg = StringSplit($Msg, ';', 2) Switch $aMsg[0] Case 1;Set State $FTP_State = $aMsg[1] Case 2; Update StatusBar transfer values Static $Time = 0, $speed = 0, $bytes_transfer = 0 If $aMsg[4] <> $Time Then If $aMsg[4] < 3600 Then;Time _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], "Time (" & StringFormat("%02i:%02i", Int($aMsg[4] / 60), Mod($aMsg[4], 60)) & ")", 3) Else Local $iTicks = Mod($aMsg[4], 3600) _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], "Time (" & StringFormat("%02i:%02i:%02i", Int($aMsg[4] / 3600), Int($iTicks / 60), Mod($iTicks, 60)) & ")", 3) EndIf $aMsg[4] = $Time EndIf If $aMsg[3] <> $bytes_transfer Then _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], $aMsg[3], 5); bytes transferd $bytes_transfer = $aMsg[3] EndIf If $aMsg[2] <> $speed Then _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], $aMsg[2], 4);speed $aMsg[2] = $speed EndIf GUICtrlSetData($aGUI[$g_hProgressBar], $aMsg[1]) Case 3; Update StatusBar filename - used when transfering directorys _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], $aMsg[1], 1) _RichEdit_AppendColor('Starting Transfer: ', $cBlue) _RichEdit_AppendColor($aMsg[1], 0, True) Case 4; Transfer of file finshed _RichEdit_AppendColor('Transfered: ', $cBlue) _RichEdit_AppendColor($aMsg[1] & ' ') _RichEdit_AppendColor(_bytes($aMsg[2]) & ' in ' & _Format_Time($aMsg[3]) & ' (' & _Speed($aMsg[2], $aMsg[3]) & ')', $cBlue, True) Case 5;console message ConsoleWrite('>>>>>>>WORKER MESSAGE: ' & $aMsg[1] & @CRLF) Case 6 _Timer_KillTimer($aGUI[$g_hGUI], $aTimers[$g_tTransfer]) _RichEdit_AppendColor('Transfer Aborted!', $cRed, True) $FTP_State = $giIdle Do Sleep(100) Until Not _IsReceiver('Worker') Local $iDelete = False If Int($aMsg[2]) = 1 Then _FTP_FileDelete($ghFTPConnect, $aMsg[3]) If Not @error Then $iDelete = True Else If FileDelete($aMsg[3]) Then $iDelete = True EndIf If $iDelete Then _RichEdit_AppendColor($aMsg[3]) _RichEdit_AppendColor(' partial file has been deleted.', $cRed, True) Else _RichEdit_AppendColor($aMsg[3]) _RichEdit_AppendColor(' partial file removal failed.', $cRed, True) EndIf If $aMsg[1] <> '3' Then ;disconnet or abort transfer Run(@AutoItExe & ' /AutoIt3ExecuteScript "' & $g_sWorker & '"') Do Sleep(100) Until _IsReceiver('Worker') If $aMsg[1] = '2' Then _FTP_Disconnect() EndIf If $aMsg[1] = '1' Then; just abort transfer so reconnect worker _MsgSend('Worker', 1 & ';' & $gaConnectionInfo[0] & ';' & $gaConnectionInfo[1] & ';' & $gaConnectionInfo[2] & ';' & $gaConnectionInfo[3]) _Statusbar(2) EndIf Case 7 ;~ $pMemoryAddress = ptr($aMsg[1]) EndSwitch EndFunc ;==>_Receiver #endregion Script Communication Functions................................ #region Local Navigation Functions.................................... Func _MyComputer() Local $drives, $attributes, $item, $iIndex = 1 $gsLocalCurrent = 'My Computer' _GUICtrlListView_DeleteAllItems($aHandles[$g_hLocalList]) $drives = DriveGetDrive("ALL") Local $Columns = IniReadSection($aConnectGUI[$g_sINIHistory], 'LocalColumns') For $i = 1 To 5 $Columns[$i][1] = Int($Columns[$i][1]) Next For $i = 1 To $drives[0] $item = _GUICtrlListView_AddItem($aHandles[$g_hLocalList], DriveGetLabel($drives[$i] & '\') & ' (' & StringUpper($drives[$i]) & ')', _GUIImageList_GetFileIconIndex($drives[$i] & '\')) ;~ $item = _GUICtrlListView_AddItem($aGUI[$g_LocalList], $drives[$i] & '\', _GUIImageList_GetFileIconIndex($drives[$i] & '\')) If $Columns[1][1] Then ;size _GUICtrlListView_AddSubItem($aGUI[$g_LocalList], $item, 'DIR', $iIndex) $iIndex += 1 EndIf If $Columns[2][1] Then $iIndex += 1;Modified If $Columns[3][1] Then;Attributes $attributes = FileGetAttrib($drives[$i] & '\') _GUICtrlListView_AddSubItem($aGUI[$g_LocalList], $item, $attributes, $iIndex) EndIf $iIndex = 1 Next GUICtrlSetData($aGUI[$g_lbLocalCount], $drives[0] & ' Drives') _ComboHistoryAdd($aGUI[$g_cbLocal], $sComboLocal, 'My Computer') EndFunc ;==>_MyComputer Func _LocalDirSwitch($index) Local $sChangeDir Select Case _GUICtrlListView_GetItemText($aGUI[$g_LocalList], $index) = '[..]' _LocalParent() Return Case $gsLocalCurrent = 'My Computer'; Local $sItem = _GUICtrlListView_GetItemText($aGUI[$g_LocalList], $index) $sChangeDir = StringMid($sItem, StringInStr($sItem, '(') + 1, 2) & '\' Case Else $sChangeDir = StringReplace($gsLocalCurrent & '\' & _GUICtrlListView_GetItemText($aGUI[$g_LocalList], $index), '\\', '\') If StringInStr(FileGetAttrib($sChangeDir), 'D') = 0 Then Return EndSelect _Push_History($gsLocalCurrent, $gaLocalHistory) _LocalSetBackTip($gsLocalCurrent) _LocalGo($sChangeDir) EndFunc ;==>_LocalDirSwitch Func _LocalParent() Local $aDirSplit, $sChangeDir $aDirSplit = StringSplit($gsLocalCurrent, '\') If $aDirSplit[0] = 2 Then If $aDirSplit[2] = '' Then $sChangeDir = 'My Computer' Else $sChangeDir = $aDirSplit[1] & '\' EndIf Else For $i = 1 To $aDirSplit[0] - 1 $sChangeDir &= $aDirSplit[$i] & '\' Next $sChangeDir = StringTrimRight($sChangeDir, 1) EndIf _Push_History($gsLocalCurrent, $gaLocalHistory) _LocalSetBackTip($gsLocalCurrent) _LocalGo($sChangeDir) EndFunc ;==>_LocalParent Func _LocalGo($sDirectory) If $sDirectory = 'My Computer' Then Return _MyComputer() Local $item, $iIcon, $iDirs = 0, $iFiles = 0, $iSize = 0 Local $iIndex, $sSize, $iIndex = 1, $IsDir, $sFile, $attributes, $Time _GUICtrlListView_DeleteAllItems($aHandles[$g_hLocalList]) Local $Columns = IniReadSection($aConnectGUI[$g_sINIHistory], 'LocalColumns') For $i = 1 To 5 $Columns[$i][1] = Int($Columns[$i][1]) Next Local $aList = _FileListToArray_mod($sDirectory) _GUICtrlListView_BeginUpdate($aHandles[$g_hLocalList]) _GUICtrlListView_AddItem($aGUI[$g_LocalList], "[..]", $FOLDER_ICON_INDEX) If IsArray($aList) Then For $i = 1 To $aList[0] $sFile = $sDirectory & '\' & $aList[$i] $attributes = FileGetAttrib($sFile) If StringInStr($attributes, 'D') > 0 Then $IsDir = True $sSize = 'DIR' $iIcon = $FOLDER_ICON_INDEX $iDirs += 1 Else $IsDir = False $sSize = FileGetSize($sFile) $iSize += $sSize $iIcon = _GUIImageList_GetFileIconIndex($aList[$i]) $iFiles += 1 EndIf $item = _GUICtrlListView_AddItem($aGUI[$g_LocalList], $aList[$i], $iIcon) If $Columns[1][1] Then ;size If $IsDir Then _GUICtrlListView_AddSubItem($aGUI[$g_LocalList], $item, 'DIR', $iIndex) Else _GUICtrlListView_AddSubItem($aGUI[$g_LocalList], $item, _bytes($sSize), $iIndex) EndIf $iIndex += 1 EndIf If $Columns[2][1] Then;Modified $Time = FileGetTime($sFile, 0) _GUICtrlListView_AddSubItem($aGUI[$g_LocalList], $item, $Time[0] & '/' & $Time[1] & '/' & $Time[2] & ' ' & $Time[3] & ':' & $Time[4] & ':' & $Time[5], $iIndex) $iIndex += 1 EndIf If $Columns[3][1] Then;Attributes _GUICtrlListView_AddSubItem($aGUI[$g_LocalList], $item, $attributes, $iIndex) $iIndex += 1 EndIf If $Columns[4][1] Then;Creation $Time = FileGetTime($sFile, 1) _GUICtrlListView_AddSubItem($aGUI[$g_LocalList], $item, $Time[0] & '/' & $Time[1] & '/' & $Time[2] & ' ' & $Time[3] & ':' & $Time[4] & ':' & $Time[5], $iIndex) $iIndex += 1 EndIf If $Columns[5][1] Then;Accessed $Time = FileGetTime($sFile, 2) _GUICtrlListView_AddSubItem($aGUI[$g_LocalList], $item, $Time[0] & '/' & $Time[1] & '/' & $Time[2] & ' ' & $Time[3] & ':' & $Time[4] & ':' & $Time[5], $iIndex) $iIndex += 1 EndIf $iIndex = 1 Next EndIf _GUICtrlListView_EndUpdate($aHandles[$g_hLocalList]) If $iFiles = 0 Then GUICtrlSetData($aGUI[$g_lbLocalCount], $iDirs & ' Directorys, ' & $iFiles & ' Files ') Else GUICtrlSetData($aGUI[$g_lbLocalCount], $iDirs & ' Directorys, ' & $iFiles & ' Files ' & '[' & _bytes($iSize) & ']') EndIf _ComboHistoryAdd($aGUI[$g_cbLocal], $sComboLocal, $sDirectory) $gsLocalCurrent = $sDirectory EndFunc ;==>_LocalGo Func _LocalBack() If $gaLocalHistory[0] = '' Then Return _LocalGo(_Pop_History($gaLocalHistory)) _LocalSetBackTip($gaLocalHistory[0]) EndFunc ;==>_LocalBack Func _Localcreatefolder() Local $bMouseHover = _MouseHover_Disable() Local $sName = InputBox('Create New Directory', 'Enter Directory Name', '', " M", Default, 130, Default, Default, 0, $aGUI[$g_hGUI]) DirCreate(StringReplace($gsLocalCurrent & '\' & $sName, '\\', '\')) _LocalGo($gsLocalCurrent);refresh If $bMouseHover Then _MouseHover_Enable() EndFunc ;==>_Localcreatefolder Func _LocalDelete() Local $aLocalSelected = _GUICtrlListView_GetSelectedIndices($aHandles[$g_hLocalList], True) If $aLocalSelected[0] = 0 Then Return Local $bMouseHover = _MouseHover_Disable() If MsgBox(36, 'Confirm File Delete', 'Are you sure you want to delete selected files?', 0, $aGUI[$g_hGUI]) = 7 Then If $bMouseHover Then _MouseHover_Enable() Return EndIf Local $i, $sFileName For $i = 1 To $aLocalSelected[0] $sFileName = StringReplace($gsLocalCurrent & '\' & _GUICtrlListView_GetItemText($aGUI[$g_LocalList], $aLocalSelected[$i], 0), '\\', '\') If StringInStr(FileGetAttrib($sFileName), 'D') = 0 Then FileDelete($sFileName) Else DirRemove($sFileName, 1) EndIf Next _GUICtrlListView_DeleteItemsSelected($aHandles[$g_hLocalList]) _LocalGo($gsLocalCurrent);refresh If $bMouseHover Then _MouseHover_Enable() EndFunc ;==>_LocalDelete Func _LocalSetBackTip($sDir) If $sDir = 'My Computer' Or StringLen($sDir) = 3 Then Return GUICtrlSetTip($aGUI[$g_bLocalBack], 'Back to ' & $sDir) $sDir = StringTrimLeft($sDir, StringInStr($sDir, '\', 0, -1)) If $sDir = '' Then Return GUICtrlSetTip($aGUI[$g_bLocalBack], 'Navigate Back') GUICtrlSetTip($aGUI[$g_bLocalBack], 'Back to ' & $sDir) EndFunc ;==>_LocalSetBackTip #endregion Local Navigation Functions.................................... ; #region Ftp Navigation Functions...................................... Func _FTPDirSwitch($index) Local $sCurrentFTPDir, $sChangeDir, $aItem $sCurrentFTPDir = _FTP_DirGetCurrent($ghFTPConnect) If _GUICtrlListView_GetItemText($aGUI[$g_FTPList], $index, 0) = '[..]' Then $sChangeDir = _FTPParent($sCurrentFTPDir) Else $aItem = _GUICtrlListView_GetItem($aGUI[$g_FTPList], $index) If $aItem[4] = $FOLDER_ICON_INDEX Then If $sCurrentFTPDir = '/' Then $sChangeDir = '/' & _GUICtrlListView_GetItemText($aGUI[$g_FTPList], $index) Else $sChangeDir = $sCurrentFTPDir & '/' & _GUICtrlListView_GetItemText($aGUI[$g_FTPList], $index) EndIf Else Return EndIf EndIf _FTPGo($sChangeDir) EndFunc ;==>_FTPDirSwitch Func _FTPGo($sChangeDir, $iInternet_Flag = $INTERNET_FLAG_HYPERLINK) Local $sFTPCurrent = _FTP_DirGetCurrent($ghFTPConnect) If $sChangeDir = $sFTPCurrent Then Return _RichEdit_AppendColor('Changing Directories...', $cPurp, True) _Push_History($sFTPCurrent, $gaFTPHistory) _FTPSetBackTip($sFTPCurrent) _FTP_DirSetCurrent($ghFTPConnect, $sChangeDir) If @error Then _RichEdit_AppendColor('ERROR: FTP Directory Change to ', $cRed) _RichEdit_AppendColor('"' & $sChangeDir & '"') _RichEdit_AppendColor(' Failed...', $cRed, True) _Pop_History($gaFTPHistory) GUICtrlSetState($aGUI[$g_FTPList], $GUI_FOCUS);RichEdit keeps stealing Focus Return EndIf _ComboHistoryAdd($aGUI[$g_cbFTP], $sComboFTP, $sChangeDir) Local $Start = TimerInit() _FtpRefresh($iInternet_Flag) ConsoleWrite('Time = ' & TimerDiff($Start) & @CRLF) _RichEdit_AppendColor('Change Successful. ', $cPurp) _RichEdit_AppendColor('"' & $sChangeDir & '"') _RichEdit_AppendColor(' is the Current Directory', $cPurp, True) GUICtrlSetState($aGUI[$g_FTPList], $GUI_FOCUS);RichEdit keeps stealing Focus EndFunc ;==>_FTPGo Func _FTPSetBackTip($sDir) If $sDir = '/' Then Return GUICtrlSetTip($aGUI[$g_bFTPBack], 'Back to /') $sDir = StringTrimLeft($sDir, StringInStr($sDir, '/', 0, -1)) If $sDir = '' Then Return GUICtrlSetTip($aGUI[$g_bFTPBack], 'Navigate Back') GUICtrlSetTip($aGUI[$g_bFTPBack], 'Back to ' & $sDir) EndFunc ;==>_FTPSetBackTip Func _FTPParent($sCurrentDir) Local $pos = StringInStr($sCurrentDir, '/', 0, -1) If $pos = 1 Then Return '/' Return StringLeft($sCurrentDir, $pos - 1) EndFunc ;==>_FTPParent Func _FTPBack() If $gaFTPHistory[0] = '' Then Return GUICtrlSetTip($aGUI[$g_bFTPBack], 'Navigate Back') Local $Back = _Pop_History($gaFTPHistory) _FTPSetBackTip($gaFTPHistory[0]) _FTP_DirSetCurrent($ghFTPConnect, $Back) If @error Then _RichEdit_AppendColor('ERROR: FTP Directory Change to ', $cRed) _RichEdit_AppendColor($Back) _RichEdit_AppendColor(' Failed...', $cRed, True) Return EndIf _RichEdit_AppendColor('Changing Directories...', $cPurp, True) _ComboHistoryAdd($aGUI[$g_cbFTP], $sComboFTP, $Back) _FtpRefresh($INTERNET_FLAG_FROM_CACHE) _RichEdit_AppendColor('Change Successful. ', $cPurp) _RichEdit_AppendColor('"' & $Back & '"') _RichEdit_AppendColor(' is the Current Directory', $cPurp, True) GUICtrlSetState($aGUI[$g_FTPList], $GUI_FOCUS) EndFunc ;==>_FTPBack Func _FtpRefresh($iFlag = Default) If $iFlag = Default Then $iFlag = BitAND($INTERNET_FLAG_RELOAD, $INTERNET_FLAG_NEED_FILE) Local $i, $item, $iIcon, $iDirs = 0, $iFiles = 0, $iSize = 0, $iIndex = 1 Local $FileAttributes, $sFileName, $iFileSize, $sFilesize, $Filetime, $callFindNext, $iDirIndex = -1 GUICtrlSetData($aGUI[$g_lbFTPCount], $iDirs & ' Directorys, ' & $iFiles & ' Files ' & '[' & _bytes($iSize) & ']') _GUICtrlListView_DeleteAllItems($aHandles[$g_hFTPList]) If _FTP_DirGetCurrent($ghFTPConnect) <> '/' Then _GUICtrlListView_AddItem($aGUI[$g_FTPList], "[..]", $FOLDER_ICON_INDEX) $iDirIndex += 1 EndIf Static $tWIN32_FIND_DATA = DllStructCreate($tagWIN32_FIND_DATA) Static $pWIN32_FIND_DATA = DllStructGetPtr($tWIN32_FIND_DATA) Local $callFindFirst = DllCall($__ghWinInet_FTP, 'handle', 'FtpFindFirstFileW', 'handle', $ghFTPConnect, 'wstr', "", 'ptr', $pWIN32_FIND_DATA, 'dword', $iFlag, 'dword_ptr', $ghFTPCallBack) If @error Then Return SetError(1, _WinAPI_GetLastError(), 0) If Not @error And $callFindFirst[0] Then _GUICtrlListView_BeginUpdate($aHandles[$g_hFTPList]) Local $Columns = IniReadSection($aConnectGUI[$g_sINIHistory], 'FTPColumns') For $i = 1 To 5 $Columns[$i][1] = Int($Columns[$i][1]) Next Local $UpdateTimer = TimerInit() Do If TimerDiff($UpdateTimer) > 200 Then GUICtrlSetData($aGUI[$g_lbFTPCount], $iDirs & ' Directorys, ' & $iFiles & ' Files ' & '[' & _bytes($iSize) & ']') $UpdateTimer = TimerInit() EndIf $sFileName = DllStructGetData($tWIN32_FIND_DATA, "cFileName") $FileAttributes = DllStructGetData($tWIN32_FIND_DATA, "dwFileAttributes") If BitAND($FileAttributes, $FILE_ATTRIBUTE_DIRECTORY) Then $iDirs += 1 $iDirIndex += 1 $sFilesize = 'DIR' $item = _GUICtrlListView_InsertItem($aHandles[$g_hFTPList], $sFileName, $iDirIndex, $FOLDER_ICON_INDEX) Else $iFiles += 1 $iFileSize = _WinAPI_MakeQWord(DllStructGetData($tWIN32_FIND_DATA, "nFileSizeLow"), DllStructGetData($tWIN32_FIND_DATA, "nFileSizeHigh")) $iSize += $iFileSize $sFilesize = _bytes($iFileSize) $iIcon = _GUIImageList_GetFileIconIndex('c:\blank.' & StringRight($sFileName, 3)) $item = _GUICtrlListView_AddItem($aHandles[$g_hFTPList], $sFileName, $iIcon) EndIf If $Columns[1][1] Then ;size _GUICtrlListView_AddSubItem($aGUI[$g_FTPList], $item, $sFilesize, $iIndex) $iIndex += 1 EndIf If $Columns[2][1] Then;Modified $Filetime = DllStructCreate($tagFileTime, DllStructGetPtr($tWIN32_FIND_DATA, "ftLastWriteTime")) _GUICtrlListView_AddSubItem($aGUI[$g_FTPList], $item, _Date_Time_FileTimeToStr($Filetime, 1), $iIndex) $iIndex += 1 EndIf If $Columns[3][1] Then;Attributes _GUICtrlListView_AddSubItem($aGUI[$g_FTPList], $item, $FileAttributes, $iIndex) $iIndex += 1 EndIf If $Columns[4][1] Then;Creation $Filetime = DllStructCreate($tagFileTime, DllStructGetPtr($tWIN32_FIND_DATA, "ftCreationTime")) _GUICtrlListView_AddSubItem($aGUI[$g_FTPList], $item, _Date_Time_FileTimeToStr($Filetime, 1), $iIndex) $iIndex += 1 EndIf If $Columns[5][1] Then;Accessed $Filetime = DllStructCreate($tagFileTime, DllStructGetPtr($tWIN32_FIND_DATA, "ftLastAccessTime")) _GUICtrlListView_AddSubItem($aGUI[$g_FTPList], $item, _Date_Time_FileTimeToStr($Filetime, 1), $iIndex) $iIndex += 1 EndIf $iIndex = 1 $callFindNext = DllCall($__ghWinInet_FTP, 'bool', 'InternetFindNextFileW', 'handle', $callFindFirst[0], 'ptr', $pWIN32_FIND_DATA) If @error Then Return SetError(2, _WinAPI_GetLastError(), 0) Until Not $callFindNext[0] DllCall($__ghWinInet_FTP, 'bool', 'InternetCloseHandle', 'handle', $callFindFirst[0]) _GUICtrlListView_EndUpdate($aHandles[$g_hFTPList]) EndIf GUICtrlSetData($aGUI[$g_lbFTPCount], $iDirs & ' Directorys, ' & $iFiles & ' Files ' & '[' & _bytes($iSize) & ']') EndFunc ;==>_FtpRefresh #endregion Ftp Navigation Functions...................................... #region FTP Functions................................................. Func _FTP_Connect_GUI() Local $GUI_Connect, $butConnect, $taddress, $server_History Local $bMouseHover = _MouseHover_Disable() Local $sLastIP = IniRead($aConnectGUI[$g_sINIHistory], 'Last', 'IP', '') Local $aINIServers = IniReadSectionNames($aConnectGUI[$g_sINIHistory]) For $i = 1 To $aINIServers[0] Switch $aINIServers[$i] Case 'Abort', 'Last', $sLastIP, 'FTPColumns', 'LocalColumns', 'Queue' Case Else $server_History &= $aINIServers[$i] & '|' EndSwitch Next $server_History = StringTrimRight($server_History, 1) $GUI_Connect = GUICreate("FTP Connect", 323, 140, Default, Default, Default, Default, $aGUI[$g_hGUI]) GUISwitch($GUI_Connect) $aGUI[$g_bActive] = False $aConnectGUI[$g_sIP] = GUICtrlCreateCombo(IniRead($aConnectGUI[$g_sINIHistory], 'Last', 'IP', ''), 80, 15, 166, 21) $aConnectGUI[$g_hIP] = GUICtrlGetHandle($aConnectGUI[$g_sIP]) GUICtrlCreateLabel("Server or Url:", 10, 20, 66, 17) $aConnectGUI[$g_iPort] = GUICtrlCreateInput(IniRead($aConnectGUI[$g_sINIHistory], 'Last', 'Port', ''), 285, 15, 26, 21) GUICtrlCreateLabel("Port:", 255, 20, 26, 17) $aConnectGUI[$g_sUser] = GUICtrlCreateInput(IniRead($aConnectGUI[$g_sINIHistory], 'Last', 'User', ''), 80, 45, 231, 21) GUICtrlCreateLabel("User Name:", 10, 50, 60, 17) Local $Decrypt_Pass = IniRead($aConnectGUI[$g_sINIHistory], 'Last', 'Pass', '') If $Decrypt_Pass <> '' Then $Decrypt_Pass = _StringEncrypt(0, $Decrypt_Pass, 'autoitrocks') $aConnectGUI[$g_sPass] = GUICtrlCreateInput($Decrypt_Pass, 80, 75, 231, 21, $ES_PASSWORD) GUICtrlCreateLabel("Password:", 10, 80, 53, 17) $butConnect = GUICtrlCreateButton("Connect", 100, 105, 106, 26, 0) If $server_History <> '' Then GUICtrlSetData($aConnectGUI[$g_sIP], $server_History) GUISetState(@SW_SHOW, $GUI_Connect) While 1 Switch GUIGetMsg() Case $GUI_EVENT_CLOSE GUIDelete($GUI_Connect) Return '' Case $butConnect Local $tIP = GUICtrlRead($aConnectGUI[$g_sIP]) If $tIP = '' Then MsgBox(0, 'ERROR', 'Must Enter Server or Url.', 5) ContinueLoop EndIf $taddress = _CheckIP($tIP) Local $tPass = GUICtrlRead($aConnectGUI[$g_sPass]), $tUser = GUICtrlRead($aConnectGUI[$g_sUser]), $tPort = GUICtrlRead($aConnectGUI[$g_iPort]) Local $aSearch = _ArraySearch($aINIServers, $tIP) If @error Then;if not found then save address. If its not an array than history file is empty If $tPass <> '' Then $tPass = _StringEncrypt(1, $tPass, 'autoitrocks') Local $aData[5][2] = [["User", $tUser],["Pass", $tPass],["Port", $tPort],["DIR_History", ''],['Queue', '']] IniWriteSection($aConnectGUI[$g_sINIHistory], $tIP, $aData, 0) Else;verify that data is still the same. If $tPass <> '' Then $tPass = _StringEncrypt(1, $tPass, 'autoitrocks') If $tUser <> IniRead($aConnectGUI[$g_sINIHistory], $tIP, 'User', '') Then IniWrite($aConnectGUI[$g_sINIHistory], $tIP, 'User', $tUser) If $tPass <> IniRead($aConnectGUI[$g_sINIHistory], $tIP, 'Pass', '') Then IniWrite($aConnectGUI[$g_sINIHistory], $tIP, 'Pass', $tPass) If $tPort <> IniRead($aConnectGUI[$g_sINIHistory], $tIP, 'Port', '') Then IniWrite($aConnectGUI[$g_sINIHistory], $tIP, 'Port', $tPort) Local $DirHistory = IniRead($aConnectGUI[$g_sINIHistory], $tIP, 'DIR_History', '') GUICtrlSetData($aGUI[$g_cbFTP], $DirHistory) Local $sQueueHistory = IniRead($aConnectGUI[$g_sINIHistory], $tIP, 'Queue', '') If $sQueueHistory <> '' Then _LoadQueue($sQueueHistory) IniWrite($aConnectGUI[$g_sINIHistory], $tIP, 'Queue', '') EndIf $sComboFTP = $DirHistory EndIf Local $aLast[4][2] = [["User", $tUser],["Pass", $tPass],["Port", $tPort],["IP", $tIP]] IniWriteSection($aConnectGUI[$g_sINIHistory], 'Last', $aLast, 0) GUISetState(@SW_HIDE, $GUI_Connect) _connect($taddress, $tUser, GUICtrlRead($aConnectGUI[$g_sPass]), $tPass) If @error = -3 Then _RichEdit_AppendColor('Failed to Connect to Server..', $cRed, True) GUISetState(@SW_SHOW, $GUI_Connect) ContinueLoop EndIf GUIDelete($GUI_Connect) $aGUI[$g_bActive] = True GUISwitch($aGUI[$g_hGUI]) If $bMouseHover Then _MouseHover_Enable() Return EndSwitch WEnd EndFunc ;==>_FTP_Connect_GUI Func _LoadQueue($sQueue) Local $aQueueSplit, $aItemsplit, $i, $iIcon, $iUpDownIcon, $sSource, $sDest, $sItem $aQueueSplit = StringSplit($sQueue, '|') For $i = 1 To $aQueueSplit[0] $aItemsplit = StringSplit($aQueueSplit[$i], ';') If $aItemsplit[2] = 'DIR' Then $iIcon = $FOLDER_ICON_INDEX Else $iIcon = _GUIImageList_GetFileIconIndex($aItemsplit[4]) EndIf If $aItemsplit[1] = 'download' Then $sSource = $aItemsplit[5] & $aItemsplit[4] $sDest = $aItemsplit[3] $iUpDownIcon = $aGUI[$g_iDownICO] Else $sSource = $aItemsplit[3] & $aItemsplit[4] $sDest = $aItemsplit[5] $iUpDownIcon = $aGUI[$g_iUpICO] EndIf $sItem = _GUICtrlListView_AddItem($aGUI[$g_QueueList], $sSource, $iIcon) _GUICtrlListView_AddSubItem($aGUI[$g_QueueList], $sItem, $sDest, 1) _GUICtrlListView_SetItemStateImage($aGUI[$g_QueueList], $sItem, $iUpDownIcon) _ArrayAdd($gaQueue, $aQueueSplit[$i]) Next EndFunc ;==>_LoadQueue Func _CheckIP($ip) ; Verifys corrent IP format or converts URL to IP. Needs to be rewrote. Local $ipcheck, $newip $ipcheck = StringReplace($ip, '.', '') If StringIsDigit($ipcheck) Then $gsServer_IP = $ip $gsServer_Name = '' Return $ip EndIf $gsServer_Name = $ip; $ip = StringReplace($ip, 'ftp://', '') $ip = StringReplace($ip, 'ftp:/', '') If StringRight($ip, 1) = '/' Then $ip = StringTrimRight($ip, 1) TCPStartup() $newip = TCPNameToIP($ip) TCPShutdown() If $newip = '' Then MsgBox(0, 'ERROR', 'Problem with Server address.', 5) Return 0 EndIf $gsServer_IP = $newip Return $newip EndFunc ;==>_CheckIP Func _connect($sFTP_IPAddress, $sUser, $sPass, $iPort, $sSession = 'session');;;; $ghFTPOpen = _FTP_Open($sSession) _InternetSetOption($ghFTPOpen, $INTERNET_OPTION_RECEIVE_TIMEOUT, 5000) $ghFTPCallBack = _FTP_SetStatusCallback($ghFTPOpen, '_FTP_StatusHandler') $ghFTPConnect = _FTP_Connect($ghFTPOpen, $sFTP_IPAddress, $sUser, $sPass, 1, $iPort, 1, 0, $ghFTPCallBack) If @error = -1 Then $gsServer_IP = '' $gsServer_Name = '' Return SetError(-3) EndIf $gbFTP_NOReconnet = False $gsServer_IP = $sFTP_IPAddress $gaConnectionInfo[0] = $sFTP_IPAddress $gaConnectionInfo[1] = $sUser $gaConnectionInfo[2] = $sPass $gaConnectionInfo[3] = $iPort _MsgSend('Worker', 1 & ';' & $gaConnectionInfo[0] & ';' & $gaConnectionInfo[1] & ';' & $gaConnectionInfo[2] & ';' & $gaConnectionInfo[3]) GUICtrlSetState($aGUI[$g_FileItem1], $GUI_DISABLE) _Statusbar(2) _FtpRefresh() _ComboHistoryAdd($aGUI[$g_cbFTP], $sComboFTP, '/') EndFunc ;==>_connect Func _FTP_Disconnect() If $gbFTP_Connected Then If $gsServer_Name <> '' Then IniWrite($aConnectGUI[$g_sINIHistory], $gsServer_Name, 'DIR_History', $sComboFTP) Else IniWrite($aConnectGUI[$g_sINIHistory], $gsServer_IP, 'DIR_History', $sComboFTP) EndIf If (UBound($gaQueue) - 1) > 0 Then Local $sQueue = StringTrimLeft(_ArrayToString($gaQueue, '|'), 1) If $gsServer_Name <> '' Then IniWrite($aConnectGUI[$g_sINIHistory], $gsServer_Name, 'Queue', $sQueue) Else IniWrite($aConnectGUI[$g_sINIHistory], $gsServer_IP, 'Queue', $sQueue) EndIf EndIf Global $gaQueue[1] _GUICtrlListView_DeleteAllItems($aHandles[$g_hQueuelist]) _GUICtrlListView_DeleteAllItems($aHandles[$g_hFTPList]) $gsServer_IP = '' $gsServer_Name = '' $sComboFTP = '' GUICtrlSetData($aGUI[$g_cbFTP], '', '') $FTP_State = $giIdle $aTimers[$g_bIdleClock] = False _GUICtrlStatusBar_Destroy($aGUI[$g_hStatusBar]) Local $StatusBar_PartsWidth[4] = [200, ($aGUI[$g_iWidth] / 2), ($aGUI[$g_iWidth] - 80), -1] Local $StatusBar_PartsText[4] = ["Not Connected", "", "", $CPU] $aGUI[$g_hStatusBar] = _GUICtrlStatusBar_Create($aGUI[$g_hGUI], $StatusBar_PartsWidth, $StatusBar_PartsText) _GUICtrlStatusBar_SetMinHeight($aGUI[$g_hStatusBar], 21) _FTP_Close($ghFTPOpen) EndIf EndFunc ;==>_FTP_Disconnect Func _FTPRemovedir($sFTPDirectory) Local $aFile, $hSearch, $sWorkingdir, $sFolderList, $i, $bFirst, $aFolderStack[2] = [1, $sFTPDirectory] While $aFolderStack[0] > 0 $sWorkingdir = $aFolderStack[$aFolderStack[0]] $aFolderStack[0] -= 1 $aFile = _FTP_FindFileFirst($ghFTPConnect, $sWorkingdir & '/*', $hSearch, $INTERNET_FLAG_RESYNCHRONIZE) If Not @error Then $bFirst = True While 1 If Not $bFirst Then $aFile = _FTP_FindFileNext($hSearch) If @error Then ExitLoop EndIf If $aFile[1] = 16 Then $aFolderStack[0] += 1 If UBound($aFolderStack) <= $aFolderStack[0] Then ReDim $aFolderStack[UBound($aFolderStack) * 2] $aFolderStack[$aFolderStack[0]] = $sWorkingdir & "/" & $aFile[10] $sFolderList &= $sWorkingdir & "/" & $aFile[10] & ';' Else _FTP_FileDelete($ghFTPConnect, $sWorkingdir & "/" & $aFile[10]) _RichEdit_AppendColor('File ', $cRed) _RichEdit_AppendColor('"' & $sWorkingdir & '/' & $aFile[10] & '"') _RichEdit_AppendColor(' was Deleted', $cRed, True) EndIf $bFirst = False WEnd EndIf _FTP_FindFileClose($hSearch) WEnd $aFolderStack = StringSplit(StringTrimRight($sFolderList, 1), ';') For $i = $aFolderStack[0] To 1 Step -1 _FTP_DirDelete($ghFTPConnect, $aFolderStack[$i]) _RichEdit_AppendColor('Directory ', $cRed) _RichEdit_AppendColor('"' & $aFolderStack[$i] & '"') _RichEdit_AppendColor(' was Deleted', $cRed, True) Next EndFunc ;==>_FTPRemovedir Func _FTP_Delete() Local $aFTPSelected = _GUICtrlListView_GetSelectedIndices($aHandles[$g_hFTPList], True) If $aFTPSelected[0] = 0 Then Return Local $bMouseHover = _MouseHover_Disable() If MsgBox(36 + 262144, 'Confirm File Delete', 'Are you sure you want to delete selected files?', 0, $aGUI[$g_hGUI]) = 7 Then; 7 = cancel If $bMouseHover Then _MouseHover_Enable() Return EndIf Local $sCurrentFTP = _FTP_DirGetCurrent($ghFTPConnect) Local $sFileName, $sFileType, $i For $i = 1 To $aFTPSelected[0] $sFileName = _GUICtrlListView_GetItemText($aGUI[$g_FTPList], $aFTPSelected[$i], 0) $sFileType = _GUICtrlListView_GetItemText($aGUI[$g_FTPList], $aFTPSelected[$i], 1) If $sFileType = 'DIR' Then _FTPRemovedir($sCurrentFTP & '/' & $sFileName) _FTP_DirSetCurrent($ghFTPConnect, $sCurrentFTP) If _FTP_DirDelete($ghFTPConnect, $sFileName) Then _RichEdit_AppendColor('Directory ', $cRed) _RichEdit_AppendColor('"' & $sCurrentFTP & '/' & $sFileName & '"') _RichEdit_AppendColor(' was Deleted', $cRed, True) EndIf Else If _FTP_FileDelete($ghFTPConnect, $sFileName) Then _RichEdit_AppendColor('File ', $cRed) _RichEdit_AppendColor('"' & $sCurrentFTP & '/' & $sFileName & '"') _RichEdit_AppendColor(' was Deleted', $cRed, True) EndIf EndIf Next _GUICtrlListView_DeleteItemsSelected($aHandles[$g_hFTPList]) _FtpRefresh($INTERNET_FLAG_RESYNCHRONIZE) If $bMouseHover Then _MouseHover_Enable() EndFunc ;==>_FTP_Delete Func _FTP_StatusHandler($hInternet, $dwContent, $dwInternetStatus, $lpvStatusInformation, $dwStatusInformationLength) Switch $dwInternetStatus Case $INTERNET_STATUS_RESOLVING_NAME _RichEdit_AppendColor('Resolving Name...', $cBlue, True) Case $INTERNET_STATUS_NAME_RESOLVED _RichEdit_AppendColor('Name Resolved', $cBlue, True) Case $INTERNET_STATUS_CONNECTING_TO_SERVER _RichEdit_AppendColor('Connecting to Server: ', $cBlue) _RichEdit_AppendColor($gsServer_Name, $cPink) _RichEdit_AppendColor(' (' & $gsServer_IP & ')', $cGreen, True) Case $INTERNET_STATUS_CONNECTED_TO_SERVER _RichEdit_AppendColor('Connected!', $cBlue, True) $gbFTP_Connected = True Case $INTERNET_STATUS_CONNECTION_CLOSED _RichEdit_AppendColor('Connection Closed.', $cBlue, True) $gbFTP_Connected = False Case $INTERNET_STATUS_CLOSING_CONNECTION _RichEdit_AppendColor('Closing Connection...', $cBlue, True) Case $INTERNET_STATUS_STATE_CHANGE _RichEdit_AppendColor('State Change Value = ', $cGreen) _RichEdit_AppendColor($lpvStatusInformation, $cGreen, True) Case Else $aTimers[$g_tIdleClock] = TimerInit() EndSwitch EndFunc ;==>_FTP_StatusHandler #endregion FTP Functions................................................. #region Column Functions.............................................. Func _Columns($hList, $sSection, $bStartup = False) Local $iColumnCount = _GUICtrlListView_GetColumnCount($hList) Local $Columns = IniReadSection($aConnectGUI[$g_sINIHistory], $sSection) If Not $bStartup Then For $i = 1 To $iColumnCount _GUICtrlListView_DeleteColumn($hList, 1) Next Else _GUICtrlListView_SetColumnWidth($hList, 0, Int(IniRead($aConnectGUI[$g_sINIHistory], $sSection, 'File', 350))) EndIf For $i = 1 To 5 If Int($Columns[$i][1]) > 0 Then _GUICtrlListView_AddColumn($hList, $Columns[$i][0], $Columns[$i][1]) Next If $hList = $aHandles[$g_hFTPList] Then Return _FtpRefresh() _LocalGo($gsLocalCurrent);refresh EndFunc ;==>_Columns Func _SaveColumns($hList, $sSection) Local $i, $iCount, $aColunm $iCount = _GUICtrlListView_GetColumnCount($hList) For $i = 0 To $iCount - 1 $aColunm = _GUICtrlListView_GetColumn($hList, $i) IniWrite($aConnectGUI[$g_sINIHistory], $sSection, $aColunm[5], $aColunm[4]) Next EndFunc ;==>_SaveColumns #endregion Column Functions.............................................. #region GUI Notification Functions.................................... Func WM_NOTIFY($hWnd, $iMsg, $iwParam, $ilParam) Local $tNMHDR = DllStructCreate($tagNMHDR, $ilParam) Local $hWndFrom = HWnd(DllStructGetData($tNMHDR, "hWndFrom")) Local $iCode = DllStructGetData($tNMHDR, "Code")expandcollapse popupSwitch $iCode Case $LVN_KEYDOWN ; A key has been pressed Local $tInfo = DllStructCreate($tagNMLVKEYDOWN, $ilParam) Switch DllStructGetData($tInfo, "VKey") Case 46;22216750 ;Delete Key Switch $hWndFrom Case $aHandles[$g_hLocalList] _LocalDelete() Case $aHandles[$g_hFTPList] If $gbFTP_Connected Then _FTP_Delete() Case $aHandles[$g_hQueuelist] _Queue_Delete_items() EndSwitch Case 8;917512;Backspace key Switch $hWndFrom Case $aHandles[$g_hLocalList] _LocalBack() Case $aHandles[$g_hFTPList] If $gbFTP_Connected Then _FTPBack() EndSwitch Case 113; F2 Key Local $iTotalSelected = _GUICtrlListView_GetSelectedCount($hWndFrom) If $iTotalSelected <> 1 Then Return $GUI_RUNDEFMSG Switch $hWndFrom Case $aHandles[$g_hLocalList] If $gsLocalCurrent = 'My Computer' Then Return $GUI_RUNDEFMSG _Rename($aHandles[$g_hLocalList]) Case $aHandles[$g_hFTPList] If Not $gbFTP_Connected Or _FTP_DirGetCurrent($ghFTPConnect) = '/' Then Return $GUI_RUNDEFMSG _Rename($aHandles[$g_hFTPList]) EndSwitch ;~ ConsoleWrite(DllStructGetData($tInfo, "VKey") & @CRLF) EndSwitch Case $NM_DBLCLK ; Sent by a list-view control when the user double-clicks an item with the left mouse button Local $tInfo = DllStructCreate($tagNMITEMACTIVATE, $ilParam) Switch $hWndFrom Case $aHandles[$g_hLocalList] _LocalDirSwitch(DllStructGetData($tInfo, "Index")) Case $aHandles[$g_hFTPList] _FTPDirSwitch(DllStructGetData($tInfo, "Index")) EndSwitch Case $NM_RCLICK Switch $hWndFrom Case $aHandles[$g_hQueuelist] _QueueListView_RClick() Case $aHandles[$g_hLocalList] _LocalListView_RClick() Case $aHandles[$g_hFTPList] _FTPListView_RClick() Case $aHandles[$g_hFTPListHeader] _RClick_Attributes($aHandles[$g_hFTPList], 'FTPColumns') Case $aHandles[$g_hLocalListHeader] _RClick_Attributes($aHandles[$g_hLocalList], 'LocalColumns') EndSwitch ;~ Case $NM_KILLFOCUS ;~ Case $NM_SETFOCUS EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_NOTIFY Func WM_COMMAND($hWnd, $iMsg, $iwParam, $hWndFrom) #forceref $hWnd, $iMsg Local $iIDFrom, $iCode;, $hWndEdit $iIDFrom = _WinAPI_LoWord($iwParam) $iCode = _WinAPI_HiWord($iwParam) Switch $hWndFrom Case $aHandles[$g_hFTPCombo] Switch $iCode Case $CBN_KILLFOCUS ; Sent when a combo box loses the keyboard focus AdlibUnRegister('_ComboFTP_Monitor_EnterKey') Case $CBN_SELCHANGE ; Sent when the user changes the current selection in the list box of a combo box _FTPGo(GUICtrlRead($aGUI[$g_cbFTP])) Case $CBN_SETFOCUS ; Sent when a combo box receives the keyboard focus AdlibRegister('_ComboFTP_Monitor_EnterKey', 75) EndSwitch Case $aHandles[$g_hLocalCombo] Switch $iCode Case $CBN_KILLFOCUS ; Sent when a combo box loses the keyboard focus AdlibUnRegister('_ComboLocal_Monitor_EnterKey') Case $CBN_SELCHANGE ; Sent when the user changes the current selection in the list box of a combo box _Push_History($gsLocalCurrent, $gaLocalHistory) _LocalGo(GUICtrlRead($aGUI[$g_cbLocal])) Case $CBN_SETFOCUS ; Sent when a combo box receives the keyboard focus AdlibRegister('_ComboLocal_Monitor_EnterKey', 75) EndSwitch Case $aConnectGUI[$g_hIP] If $iCode = $CBN_SELCHANGE Then; Sent when the user changes the current selection in the list box of a combo box Local $sIPRead = GUICtrlRead($aConnectGUI[$g_sIP]) Local $Decrypt_Pass = IniRead($aConnectGUI[$g_sINIHistory], $sIPRead, 'Pass', '') If $Decrypt_Pass <> '' Then $Decrypt_Pass = _StringEncrypt(0, $Decrypt_Pass, 'autoitrocks') GUICtrlSetData($aConnectGUI[$g_sPass], $Decrypt_Pass) GUICtrlSetData($aConnectGUI[$g_sUser], IniRead($aConnectGUI[$g_sINIHistory], $sIPRead, 'User', '')) GUICtrlSetData($aConnectGUI[$g_iPort], IniRead($aConnectGUI[$g_sINIHistory], $sIPRead, 'Port', '')) ;~ ConsoleWrite($hWndFrom & @CRLF & $iCode & @CRLF) EndIf EndSwitch Return $GUI_RUNDEFMSG EndFunc ;==>WM_COMMAND Func WM_SIZE($hWnd, $iMsg, $iwParam, $ilParam) $aGUI[$g_iWidth] = _WinAPI_LoWord($ilParam) ;$iHeight = _WinAPI_HiWord($ilParam) _GUICtrlStatusBar_Resize($aGUI[$g_hStatusBar]) Return $GUI_RUNDEFMSG EndFunc ;==>WM_SIZE #endregion GUI Notification Functions.................................... #region Right Click Menues............................................ Func _FTPListView_RClick() Local Enum $idQueue = 1000, $idTransfer, $idDelete, $idRename, $idRefresh, $idFolder, $idAbort, $idConnect Local $hMenu = _GUICtrlMenu_CreatePopup() Local $iTotalSelected = _GUICtrlListView_GetSelectedCount($aHandles[$g_hFTPList]) If $gbFTP_Connected Then If $FTP_State <> $giIdle Then _GUICtrlMenu_AddMenuItem($hMenu, "ABORT Transfer", $idAbort) If $iTotalSelected Then If $gsLocalCurrent <> 'My Computer' Then _GUICtrlMenu_AddMenuItem($hMenu, "Queue", $idQueue) If $FTP_State = $giIdle And $gsLocalCurrent <> 'My Computer' Then _GUICtrlMenu_AddMenuItem($hMenu, "Transfer", $idTransfer) _GUICtrlMenu_AddMenuItem($hMenu, "Delete", $idDelete) EndIf If $iTotalSelected = 1 Then _GUICtrlMenu_AddMenuItem($hMenu, "Rename", $idRename) _GUICtrlMenu_AddMenuItem($hMenu, "Refresh", $idRefresh) _GUICtrlMenu_AddMenuItem($hMenu, "Create Folder", $idFolder) Else _GUICtrlMenu_AddMenuItem($hMenu, "Connect", $idConnect) EndIf Switch _GUICtrlMenu_TrackPopupMenu($hMenu, $aHandles[$g_hFTPList], -1, -1, 1, 1, 2) Case $idConnect _FTP_Connect_GUI() Case $idQueue _QueueItems($aHandles[$g_hFTPList]) Case $idTransfer _QueueItems($aHandles[$g_hFTPList]) If (UBound($gaQueue) - 1) > 0 Then _Statusbar(3);Transfer function will change status bar back when finished $aTimers[$g_tTransfer] = _Timer_SetTimer($aGUI[$g_hGUI], 500, "_Transfer") EndIf Case $idRename _Rename($aHandles[$g_hFTPList]) Case $idRefresh _FtpRefresh(BitOR($INTERNET_FLAG_RESYNCHRONIZE,$INTERNET_FLAG_NEED_FILE)) Case $idDelete _FTP_Delete() Case $idFolder Local $bMouseHover = _MouseHover_Disable() Local $sFolderName = InputBox('Create New Directory', 'Enter Directory Name', '', " M", Default, 130, Default, Default, 0, $aGUI[$g_hGUI]) If Not @error Then _FTP_DirCreate($ghFTPConnect, $sFolderName) _FtpRefresh($INTERNET_FLAG_RELOAD) EndIf If $bMouseHover Then _MouseHover_Enable() Case $idAbort IniWrite($aConnectGUI[$g_sINIHistory], 'Abort', 'Abort', 1) Case Else EndSwitch _GUICtrlMenu_DestroyMenu($hMenu) EndFunc ;==>_FTPListView_RClick Func _LocalListView_RClick() Local Enum $idQueue = 1000, $idTransfer, $idDelete, $idRefresh, $idFolder, $idRename, $idAbort, $idConnect Local $hMenu = _GUICtrlMenu_CreatePopup() Local $iTotalSelected = _GUICtrlListView_GetSelectedCount($aHandles[$g_hLocalList]) If $gbFTP_Connected Then If $FTP_State <> $giIdle Then _GUICtrlMenu_AddMenuItem($hMenu, "ABORT Transfer", $idAbort) If $iTotalSelected Then If $FTP_State = $giIdle Then _GUICtrlMenu_AddMenuItem($hMenu, "Transfer", $idTransfer) _GUICtrlMenu_AddMenuItem($hMenu, "Queue", $idQueue) EndIf Else _GUICtrlMenu_AddMenuItem($hMenu, "Connect", $idConnect) EndIf If $iTotalSelected Then _GUICtrlMenu_AddMenuItem($hMenu, "Delete", $idDelete) If $iTotalSelected = 1 Then _GUICtrlMenu_AddMenuItem($hMenu, "Rename", $idRename) _GUICtrlMenu_AddMenuItem($hMenu, "Refresh", $idRefresh) If $gsLocalCurrent <> 'My Computer' Then _GUICtrlMenu_AddMenuItem($hMenu, "Create Folder", $idFolder) Switch _GUICtrlMenu_TrackPopupMenu($hMenu, $aHandles[$g_hLocalList], -1, -1, 1, 1, 2) Case $idQueue _QueueItems($aHandles[$g_hLocalList]) Case $idTransfer _QueueItems($aHandles[$g_hLocalList]) If (UBound($gaQueue) - 1) > 0 Then _Statusbar(3);Transfer function will change status bar back when finished $aTimers[$g_tTransfer] = _Timer_SetTimer($aGUI[$g_hGUI], 500, "_Transfer") EndIf Case $idFolder _Localcreatefolder() Case $idDelete _LocalDelete() Case $idRefresh If $gsLocalCurrent = 'My Computer' Then _MyComputer() Else _LocalGo($gsLocalCurrent) EndIf Case $idRename _Rename($aHandles[$g_hLocalList]) Case $idAbort IniWrite($aConnectGUI[$g_sINIHistory], 'Abort', 'Abort', 1) EndSwitch _GUICtrlMenu_DestroyMenu($hMenu) EndFunc ;==>_LocalListView_RClick Func _QueueListView_RClick() Local Enum $idTransferQueue = 4564, $idClear, $idDelete, $idAbort; $idBack;,$idFolder,$idRename Local $hMenu = _GUICtrlMenu_CreatePopup() Local $iTotalSelected = _GUICtrlListView_GetSelectedCount($aHandles[$g_hQueuelist]) Local $iCount = _GUICtrlListView_GetItemCount($aHandles[$g_hQueuelist]) If $gbFTP_Connected Then If $FTP_State = $giIdle And $iCount Then _GUICtrlMenu_AddMenuItem($hMenu, "Transfter Queue", $idTransferQueue) If $FTP_State <> $giIdle Then _GUICtrlMenu_AddMenuItem($hMenu, "ABORT Transfer", $idAbort) EndIf If $iCount Then _GUICtrlMenu_AddMenuItem($hMenu, "Clear Queue", $idClear) If $iTotalSelected Then _GUICtrlMenu_AddMenuItem($hMenu, "Delete", $idDelete) Switch _GUICtrlMenu_TrackPopupMenu($hMenu, $aHandles[$g_hLocalList], -1, -1, 1, 1, 2) Case $idTransferQueue _Statusbar(3) $aTimers[$g_tTransfer] = _Timer_SetTimer($aGUI[$g_hGUI], 500, "_Transfer") Case $idClear Global $gaQueue[1] _GUICtrlListView_DeleteAllItems($aHandles[$g_hQueuelist]) Case $idDelete _Queue_Delete_items() Case $idAbort IniWrite($aConnectGUI[$g_sINIHistory], 'Abort', 'Abort', 1) EndSwitch _GUICtrlMenu_DestroyMenu($hMenu) EndFunc ;==>_QueueListView_RClick Func _RClick_Attributes($hList, $sSection) Local Enum $iSize = 1, $iModified, $iAttrubute, $iCreation, $iAccess Local $i, $bChecked, $sKey, $hMenu = _GUICtrlMenu_CreatePopup(2) Local $Columns = IniReadSection($aConnectGUI[$g_sINIHistory], $sSection) _GUICtrlMenu_AddMenuItem($hMenu, "Size", $iSize) _GUICtrlMenu_AddMenuItem($hMenu, "Modifed", $iModified) _GUICtrlMenu_AddMenuItem($hMenu, "Attrubutes", $iAttrubute) _GUICtrlMenu_AddMenuItem($hMenu, "Creation", $iCreation) _GUICtrlMenu_AddMenuItem($hMenu, "Accessed", $iAccess) For $i = $iSize To $iAccess $bChecked = Int($Columns[$i][1]) <> 0 _GUICtrlMenu_SetItemChecked($hMenu, $i, $bChecked, False) Next Local $mitem = _GUICtrlMenu_TrackPopupMenu($hMenu, $hList, -1, -1, 1, 1, 2) _GUICtrlMenu_DestroyMenu($hMenu) Switch $mitem Case $iSize $sKey = 'Size' Case $iModified $sKey = 'Modified' Case $iAttrubute $sKey = 'Attributes' Case $iCreation $sKey = 'Creation' Case $iAccess $sKey = 'Accessed' Case Else Return EndSwitch _SaveColumns($hList, $sSection) If Int($Columns[$mitem][1]) > 0 Then IniWrite($aConnectGUI[$g_sINIHistory], $sSection, $sKey, 0) Else IniWrite($aConnectGUI[$g_sINIHistory], $sSection, $sKey, 75) EndIf _Columns($hList, $sSection) EndFunc ;==>_RClick_Attributes Func _Queue_Delete_items() Local $bMouseHover = _MouseHover_Disable() If MsgBox(36, 'Confirm Remove Items', 'Are you sure you want remove selected items from queue?', 0, $aGUI[$g_hGUI]) = 7 Then If $bMouseHover Then _MouseHover_Enable() Return EndIf Local $aSelectedQueue = _GUICtrlListView_GetSelectedIndices($aHandles[$g_hQueuelist], True) For $i = 1 To $aSelectedQueue[0] $gaQueue[$aSelectedQueue[$i] + 1] = 0 Next $i = 1 Do If Not $gaQueue[$i] Then _ArrayDelete($gaQueue, $i) $i -= 1 EndIf $i += 1 Until $i = UBound($gaQueue) _GUICtrlListView_DeleteItemsSelected($aHandles[$g_hQueuelist]) If $bMouseHover Then _MouseHover_Enable() EndFunc ;==>_Queue_Delete_items #endregion Right Click Menues............................................ #region Combobox Address Functions.................................... Func _ComboHistoryAdd(ByRef $gui_combo, ByRef $sCombo, $item) Local $split = StringSplit($sCombo, '|') _ArraySearch($split, $item) If Not @error Then GUICtrlSetData($gui_combo, $item, $item) Return EndIf If $split[0] > 9 Then _ArrayDelete($split, 1) $sCombo = _ArrayToString($split, '|', 1) & '|' & $item GUICtrlSetData($gui_combo, '', $item) GUICtrlSetData($gui_combo, $sCombo, $item) Else $sCombo &= '|' & $item GUICtrlSetData($gui_combo, $item, $item) EndIf EndFunc ;==>_ComboHistoryAdd Func _ComboFTP_Monitor_EnterKey() If _IsPressed("0D", $aDll[$g_hUser32]) Then _FTPGo(GUICtrlRead($aGUI[$g_cbFTP])) EndFunc ;==>_ComboFTP_Monitor_EnterKey Func _ComboLocal_Monitor_EnterKey() If _IsPressed("0D", $aDll[$g_hUser32]) Then Local $combo = GUICtrlRead($aGUI[$g_cbLocal]) If FileExists($combo) Then _Push_History($gsLocalCurrent, $gaLocalHistory) _LocalGo($combo) EndIf EndIf EndFunc ;==>_ComboLocal_Monitor_EnterKey #endregion Combobox Address Functions.................................... #region Statusbar Functions........................................... Func _Statusbar($state) Switch $state Case 1;startup Local $StatusBar_PartsWidth[4] = [200, ($aGUI[$g_iWidth] / 2), ($aGUI[$g_iWidth] - 80), -1] Local $StatusBar_PartsText[4] = ["Not Connected", "", "", "CPU: 0.0%"] $aGUI[$g_hStatusBar] = _GUICtrlStatusBar_Create($aGUI[$g_hGUI], $StatusBar_PartsWidth, $StatusBar_PartsText) _GUICtrlStatusBar_SetMinHeight($aGUI[$g_hStatusBar], 21) Case 2;connected _GUICtrlStatusBar_Destroy($aGUI[$g_hStatusBar]) Local $StatusBar_PartsWidth[4] = [200, ($aGUI[$g_iWidth] / 2), ($aGUI[$g_iWidth] - 80), -1] Local $StatusBar_PartsText[4] = ['Connected IP : ' & $gsServer_IP, $gsServer_Name, "Idle (00:00)", $CPU] $aGUI[$g_hStatusBar] = _GUICtrlStatusBar_Create($aGUI[$g_hGUI], $StatusBar_PartsWidth, $StatusBar_PartsText);Connection, idle, messeges? _GUICtrlStatusBar_SetMinHeight($aGUI[$g_hStatusBar], 21) $aTimers[$g_tIdleClock] = TimerInit() $aTimers[$g_bIdleClock] = True Case 3;Transfer Local $FileNameLen $aTimers[$g_bIdleClock] = False _GUICtrlStatusBar_Destroy($aGUI[$g_hStatusBar]) If ($aGUI[$g_iWidth] / 2) > 480 Then $FileNameLen = ($aGUI[$g_iWidth] / 2) Else $FileNameLen = $aGUI[$g_iWidth] - 580 ; ;[75, ?, 80, 80, 80, 140, 200] EndIf Local $StatusBar_PartsWidth[7] = [75, $FileNameLen, $FileNameLen + 80, $FileNameLen + 160, $FileNameLen + 240, $FileNameLen + 380, -1] Local $StatusBar_PartsText[7] = ["Idle:", 'FileName', $CPU, 'Time (00:00)', '', '', ''] $aGUI[$g_hStatusBar] = _GUICtrlStatusBar_Create($aGUI[$g_hGUI], $StatusBar_PartsWidth, $StatusBar_PartsText);Uploading or Downloading, filename, speed, Estimated Time _GUICtrlStatusBar_SetMinHeight($aGUI[$g_hStatusBar], 21) $aGUI[$g_hProgressBar] = GUICtrlCreateProgress(0, 0, -1, -1, $PBS_SMOOTH) _GUICtrlStatusBar_EmbedControl($aGUI[$g_hStatusBar], 6, GUICtrlGetHandle($aGUI[$g_hProgressBar]), 4) EndSwitch EndFunc ;==>_Statusbar Func _CPU_IdleClock_Update($hWnd, $Msg, $iIDTimer, $dwTime) Static $StartTimes[2], $EndTimes[2], $bFirstRun = True Static $CPU_Kernel = DllStructCreate($tagFileTime), $CPU_User = DllStructCreate($tagFileTime), $CPU_Idle = DllStructCreate($tagFileTime) Static $pCPU_Kernel = DllStructGetPtr($CPU_Kernel), $pCPU_User = DllStructGetPtr($CPU_User), $pCPU_Idle = DllStructGetPtr($CPU_Idle) DllCall($aDll[$g_hKernel32], "int", "GetSystemTimes", "ptr", $pCPU_Idle, "ptr", $pCPU_Kernel, "ptr", $pCPU_User) $EndTimes[0] = (DllStructGetData($CPU_Kernel, 1) + DllStructGetData($CPU_User, 1)); Kerneltime + UserTime $EndTimes[1] = DllStructGetData($CPU_Idle, 1);IdleTime If $bFirstRun Then $StartTimes = $EndTimes $bFirstRun = False Return EndIf Local $Idle_Time = $EndTimes[1] - $StartTimes[1] If $Idle_Time > 0 Then ; Every once in a while idle time will be negative because the 32bit value gets to high and goes back to zero causing starttime to be bigger then endtime Local $Total_Time = $EndTimes[0] - $StartTimes[0] Local $CPU_Percent = (($Total_Time - $Idle_Time) / $Total_Time) * 100 $CPU_Percent = StringFormat('CPU: %.1f%%', $CPU_Percent) If $CPU <> $CPU_Percent Then If $FTP_State = $giIdle Then _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], $CPU_Percent, 3) Else _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], $CPU_Percent, 2) EndIf $CPU = $CPU_Percent EndIf EndIf $StartTimes = $EndTimes If $aTimers[$g_bIdleClock] Then Local $Hour, $Mins, $Secs _TicksToTime(Int(TimerDiff($aTimers[$g_tIdleClock])), $Hour, $Mins, $Secs) If Not $Hour Then _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], StringFormat("Idle (%02i:%02i)", $Mins, $Secs), 2) Else _GUICtrlStatusBar_SetText($aGUI[$g_hStatusBar], StringFormat("Idle (%02i:%02i:%02i)", $Hour, $Mins, $Secs), 2) EndIf EndIf EndFunc ;==>_CPU_IdleClock_Update #endregion Statusbar Functions........................................... #region History Stack Functions....................................... Func _Push_History($item, ByRef $aHistory) If $aHistory[0] = $item Then Return For $i = 19 To 1 Step -1 $aHistory[$i] = $aHistory[$i - 1] Next $aHistory[0] = $item EndFunc ;==>_Push_History Func _Pop_History(ByRef $aHistory, $iNoDelete = True) If Not $iNoDelete Then Return $aHistory[0] Local $pop = $aHistory[0] For $i = 0 To 18 $aHistory[$i] = $aHistory[$i + 1] Next $aHistory[19] = '' Return $pop EndFunc ;==>_Pop_History #endregion History Stack Functions....................................... #region Other Functions............................................... Func _ExitTime() _SaveColumns($aHandles[$g_hFTPList], 'FTPColumns') _SaveColumns($aHandles[$g_hLocalList], 'LocalColumns') _GUICtrlRichEdit_Destroy($aGUI[$g_StatusList]) IniWrite($aConnectGUI[$g_sINIHistory], "Abort", "Abort", 0) _Timer_KillAllTimers($aGUI[$g_hGUI]) For $i = 0 To UBound($aDll) - 1 DllClose($aDll[$i]) Next If @Compiled Then FileDelete($g_sWorker) EndFunc ;==>_ExitTime Func _ListSetFocus($CtrlID) If Not $aGUI[$g_bActive] Then Return If $CtrlID = $aGUI[$g_StatusList] Then ConsoleWrite('statuslist' & @CRLF) If Not _WinAPI_SetFocus($aGUI[$g_StatusList]) Then ConsoleWrite('statusfocus error' & @CRLF) Return EndIf GUICtrlSetState($CtrlID, $GUI_FOCUS) EndFunc ;==>_ListSetFocus Func _bytes($iBytes) Switch $iBytes Case 0 To 1023 Return $iBytes & " Bytes" Case 1024 To 1048575 Return Round($iBytes / 1024, 2) & " KB" Case 1048576 To 1073741823 Return Round($iBytes / 1048576, 2) & " MB" Case Else Return Round($iBytes / 1073741824, 2) & " GB" EndSwitch EndFunc ;==>_bytes Func _ArraytoConsole($array, $name = '') Local $i, $string = $name & @CRLF For $i = 0 To UBound($array) - 1 $string &= '[' & $i & ']' & $array[$i] & @CRLF Next ConsoleWrite($string) EndFunc ;==>_ArraytoConsole Func _RichEdit_AppendColor($sMsg, $iColor = 0, $bCRLF = False) _CheckLen() _GUICtrlRichEdit_Deselect($aGUI[$g_StatusList]) _GUICtrlRichEdit_GotoCharPos($aGUI[$g_StatusList], -1) Local $FirstCharPos = _GUICtrlRichEdit_GetFirstCharPosOnLine($aGUI[$g_StatusList]) _GUICtrlRichEdit_SetSel($aGUI[$g_StatusList], $FirstCharPos, $FirstCharPos + 1) Local $StartPOS = $FirstCharPos + _GUICtrlRichEdit_GetLineLength($aGUI[$g_StatusList], -1) _GUICtrlRichEdit_AppendText($aGUI[$g_StatusList], $sMsg) _GUICtrlRichEdit_SetSel($aGUI[$g_StatusList], $StartPOS, -1, True) _GUICtrlRichEdit_SetCharColor($aGUI[$g_StatusList], $iColor) _GUICtrlRichEdit_Deselect($aGUI[$g_StatusList]) If $bCRLF Then _GUICtrlRichEdit_AppendText($aGUI[$g_StatusList], @CRLF) EndFunc ;==>_RichEdit_AppendColor Func _CheckLen() Static $iCount $iCount += 1 If $iCount <= 50 Then Return If _GUICtrlRichEdit_GetTextLength($aGUI[$g_StatusList], False, True) > 90000 Then _GUICtrlRichEdit_SetSel($aGUI[$g_StatusList], 0, 30000) _GUICtrlRichEdit_ReplaceText($aGUI[$g_StatusList], "") EndIf $iCount = 0 EndFunc ;==>_CheckLen Func _Resize_Rich_Edit() Local $FTP_POS = ControlGetPos($aGUI[$g_sTitle], '', $aGUI[$g_FTPList]) Local $Queue_POS = ControlGetPos($aGUI[$g_sTitle], '', $aGUI[$g_QueueList]) _WinAPI_SetWindowPos($aGUI[$g_StatusList], 0, $FTP_POS[0], $Queue_POS[1], $Queue_POS[2], $Queue_POS[3], $SWP_SHOWWINDOW) EndFunc ;==>_Resize_Rich_Edit Func _Speed($size, $millsec) Local $speed = $size / ($millsec / 1000) If $speed >= 1048576 Then Return Round($speed / 1048576, 2) & " mB/sec" Return Round($speed / 1024, 2) & " kB/sec" EndFunc ;==>_Speed Func _Format_Time($iMillseconds) $iMillseconds = Int($iMillseconds) If $iMillseconds < 60000 Then Return Round($iMillseconds / 1000, 2) Local $Hour, $Mins, $Secs If $iMillseconds < 3600000 Then _TicksToTime($iMillseconds, $Hour, $Mins, $Secs) Return StringFormat("%02i:%02i", $Mins, $Secs) Else _TicksToTime($iMillseconds, $Hour, $Mins, $Secs) Return StringFormat("%02i:%02i:%02i", $Hour, $Mins, $Secs) EndIf EndFunc ;==>_Format_Time Func _FileListToArray_mod($sPath, $sFilter = "*", $iFlag = 0) Local $hSearch, $sFile, $sFileList, $sFolderList, $sDelim = "|" $sPath = StringRegExpReplace($sPath, "[\\/]+\z", "") & "\" ; ensure single trailing backslash If Not FileExists($sPath) Then Return SetError(1, 1, "") If StringRegExp($sFilter, "[\\/:><\|]|(?s)\A\s*\z") Then Return SetError(2, 2, "") If Not ($iFlag = 0 Or $iFlag = 1 Or $iFlag = 2) Then Return SetError(3, 3, "") $hSearch = FileFindFirstFile($sPath & $sFilter) If @error Then Return SetError(4, 4, "") While 1 $sFile = FileFindNextFile($hSearch) If @error Then ExitLoop If @extended Then $sFolderList &= $sDelim & $sFile Else $sFileList &= $sDelim & $sFile EndIf WEnd FileClose($hSearch) $sFileList = $sFolderList & $sFileList If Not $sFileList Then Return SetError(4, 4, "") Return StringSplit(StringTrimLeft($sFileList, 1), "|") EndFunc ;==>_FileListToArray_mod Func _Rename($hHandle) Local $aSelected = _GUICtrlListView_GetSelectedIndices($hHandle, True) Local $sFileName = _GUICtrlListView_GetItemText($hHandle, $aSelected[1], 0) Local $bMouseHover = _MouseHover_Disable() Local $sNewName = InputBox("Rename File", "Enter New File Name:", $sFileName, " M", Default, 130, Default, Default, 0, $aGUI[$g_hGUI]) If @error Then If $bMouseHover Then _MouseHover_Enable() Return EndIf Switch $hHandle Case $aHandles[$g_hFTPList] _FTP_FileRename($ghFTPConnect, $sFileName, $sNewName) _FtpRefresh($INTERNET_FLAG_RELOAD) Case $aHandles[$g_hLocalList] FileMove($gsLocalCurrent & '\' & $sFileName, $gsLocalCurrent & '\' & $sNewName) _LocalGo($gsLocalCurrent);refresh EndSwitch If $bMouseHover Then _MouseHover_Enable() EndFunc ;==>_Rename Func _Check_INI_File() If Not FileExists($aConnectGUI[$g_sINIHistory]) Then _FileCreate($aConnectGUI[$g_sINIHistory]) IniWrite($aConnectGUI[$g_sINIHistory], "Abort", "Abort", 0) Local $aLast[4][2] = [["User", ''],["Pass", ''],["Port", '21'],["IP", '']] IniWriteSection($aConnectGUI[$g_sINIHistory], 'Last', $aLast, 0) Local $aColumns[6][2] = [["Size", '75'],["Modified", '0'],["Attributes", '0'],["Creation", '0'],["Accessed", '0'],["File", '350']] IniWriteSection($aConnectGUI[$g_sINIHistory], 'FTPColumns', $aColumns, 0) IniWriteSection($aConnectGUI[$g_sINIHistory], 'LocalColumns', $aColumns, 0) EndIf EndFunc ;==>_Check_INI_File Func _ReduceMemory() If $FTP_State = $giIdle Then ;~ _ArraytoConsole(MemGetStats()) DllCall($aDll[$g_hPSAPI], 'int', 'EmptyWorkingSet', 'long', -1) If @error Then ConsoleWrite('error code = ' & @error & @CRLF) ;~ ConsoleWrite('release' & @CRLF) ;~ _ArraytoConsole(MemGetStats()) EndIf EndFunc ;==>_ReduceMemory #endregion Other Functions............................................... #region Functions not written by me................................... ;Prog@ndy Icon Functions................................... Func _GUIImageList_GetSystemImageList($bLargeIcons = False) Local $SHGFI_USEFILEATTRIBUTES = 0x10, $SHGFI_SYSICONINDEX = 0x4000, $SHGFI_SMALLICON = 0x1;, $SHGFI_LARGEICON = 0x0;,$FILE_ATTRIBUTE_NORMAL = 0x80 Local $FileInfo = DllStructCreate("dword hIcon; int iIcon; DWORD dwAttributes; CHAR szDisplayName[255]; CHAR szTypeName[80];") Local $dwFlags = BitOR($SHGFI_USEFILEATTRIBUTES, $SHGFI_SYSICONINDEX) If Not ($bLargeIcons) Then $dwFlags = BitOR($dwFlags, $SHGFI_SMALLICON) Local $hIml = _WinAPI_SHGetFileInfo(".txt", $FILE_ATTRIBUTE_NORMAL, DllStructGetPtr($FileInfo), DllStructGetSize($FileInfo), $dwFlags) Return $hIml EndFunc ;==>_GUIImageList_GetSystemImageList Func _GUIImageList_GetFileIconIndex($sFileSpec, $bLargeIcons = False, $bForceLoadFromDisk = False);modified Static $FileInfo = DllStructCreate("dword hIcon; int iIcon; DWORD dwAttributes; CHAR szDisplayName[255]; CHAR szTypeName[80];") Local $dwFlags = BitOR(0x4000, 0x1) If Not $bForceLoadFromDisk Then $dwFlags = BitOR($dwFlags, 0x10) DllCall($aDll[$g_hShell32], "DWORD*", "SHGetFileInfo", "str", $sFileSpec, "DWORD", $FILE_ATTRIBUTE_NORMAL, "ptr", DllStructGetPtr($FileInfo), _ "UINT", DllStructGetSize($FileInfo), "UINT", $dwFlags) If @error Then Return SetError(1, 0, -1) Return DllStructGetData($FileInfo, "iIcon") EndFunc ;==>_GUIImageList_GetFileIconIndex Func _WinAPI_SHGetFileInfo($pszPath, $dwFileAttributes, $psfi, $cbFileInfo, $uFlags) Local $return = DllCall($aDll[$g_hShell32], "DWORD*", "SHGetFileInfo", "str", $pszPath, "DWORD", $dwFileAttributes, "ptr", $psfi, "UINT", $cbFileInfo, "UINT", $uFlags) If @error Then Return SetError(@error, 0, 0) Return $return[0] EndFunc ;==>_WinAPI_SHGetFileInfo ; #FUNCTION# =============================== ; Author(s): Yashied ;==================================================================================================================================== Func _InternetSetOption($hInternet, $lOption, $lValue) Local Const $tagINTERNET_PROXY_INFO = 'dword AccessType;ptr Proxy;ptr ProxyBypass;';internet options Local $Ret, $Back, $tBuffer Switch $lOption Case 2, 3, 5, 6, 12, 13 If IsInt($lValue) Then $tBuffer = DllStructCreate('int') Case 28, 29, 41 If IsString($lValue) Then $tBuffer = DllStructCreate('char[' & StringLen($lValue) + 1 & ']') Case 38 If IsDllStruct($lValue) Then $tBuffer = DllStructCreate($tagINTERNET_PROXY_INFO, DllStructGetPtr($lValue)) Case 45 If IsPtr($lValue) Then $tBuffer = DllStructCreate('ptr') Case Else Return SetError(1, 0, 0) EndSwitch If Not ($lOption = 38) Then DllStructSetData($tBuffer, 1, $lValue) $Back = _InternetGetOption($hInternet, $lOption) If (@error) Then Return SetError(1, @extended, 0) $Ret = DllCall('wininet.dll', 'int', 'InternetSetOption', 'hwnd', $hInternet, 'dword', $lOption, 'ptr', DllStructGetPtr($tBuffer), 'dword', DllStructGetSize($tBuffer)) If (@error) Or ($Ret[0] = 0) Then Return SetError(1, _WinAPI_GetLastError(), 0) Return SetError(0, 0, $Back) EndFunc ;==>_InternetSetOption Func _InternetGetOption($hInternet, $lOption) Local Const $tagINTERNET_PROXY_INFO = 'dword AccessType;ptr Proxy;ptr ProxyBypass;';internet options Local $Ret, $tBuffer Switch $lOption Case 2, 3, 5, 6, 12, 13 $tBuffer = DllStructCreate('int') Case 28, 29, 41 $tBuffer = DllStructCreate('char[1024]') Case 38 $tBuffer = DllStructCreate($tagINTERNET_PROXY_INFO) Case 45 $tBuffer = DllStructCreate('ptr') Case Else Return SetError(1, 0, 0) EndSwitch $Ret = DllCall('wininet.dll', 'int', 'InternetQueryOption', 'hwnd', $hInternet, 'dword', $lOption, 'ptr', DllStructGetPtr($tBuffer), 'dword*', DllStructGetSize($tBuffer)) If (@error) Or ($Ret[0] = 0) Then Return SetError(1, _WinAPI_GetLastError(), 0) Switch $lOption Case 38 Return SetError(0, 0, $tBuffer) Case Else Return SetError(0, 0, DllStructGetData($tBuffer, 1)) EndSwitch EndFunc ;==>_InternetGetOption Func _About($Title, $MainLabel, $CopyRLabel, $VerLabel, $NameURL1, $URL1, $NameURL2, $URL2, $NameURL3, $URL3, $IconFile = "", $LinkColor = 0x0000FF, $BkColor = 0xFFFFFF, $Left = -1, $Top = -1, $Style = -1, $ExStyle = -1, $Parent = 0) Local $OldEventOpt = Opt("GUIOnEventMode", 0) Local $GUI_About, $LinkTop = 120, $Msg, $CurIsOnCtrlArr[1] Local $LinkVisitedColor[4] = [3, $LinkColor, $LinkColor, $LinkColor], $LinkLabel[4] WinSetState($Parent, "", @SW_DISABLE) If $ExStyle = -1 Then $ExStyle = "" $GUI_About = GUICreate($Title, 320, 240, $Left, $Top, $Style, 0x00000080 + $ExStyle, $Parent) GUISwitch($GUI_About) GUISetBkColor($BkColor) GUICtrlCreateLabel($MainLabel, 40, 20, 280, 25, 1) GUICtrlSetFont(-1, 16) GUICtrlCreateIcon($IconFile, 0, 10, 20) GUICtrlCreateGraphic(5, 75, 310, 3, $SS_ETCHEDFRAME) For $i = 1 To 3 $LinkLabel[$i] = GUICtrlCreateLabel(Eval("NameURL" & $i), 150, $LinkTop, 145, 15, 1) GUICtrlSetCursor(-1, 0) GUICtrlSetColor(-1, $LinkColor) GUICtrlSetFont(-1, 9, 400, 0) $LinkTop += 30 Next GUICtrlCreateLabel("Program version: " & @LF & $VerLabel, 10, 130, 150, 35, 1) GUICtrlSetFont(-1, 10, 600, 0, "Tahoma") GUICtrlCreateLabel($CopyRLabel, 0, 220, 320, -1, 1) GUISetState(@SW_SHOW, $GUI_About) While 1 $Msg = GUIGetMsg() If $Msg = -3 Then ExitLoop For $i = 1 To 3 If $Msg = $LinkLabel[$i] Then $LinkVisitedColor[$i] = 0xAC00A9 GUICtrlSetColor($LinkLabel[$i], $LinkVisitedColor[$i]) ShellExecute(Eval("URL" & $i)) EndIf Next If WinActive($aGUI[$g_hGUI]) Then For $i = 1 To 3 ControlHover($GUI_About, $LinkLabel[$i], $i, $CurIsOnCtrlArr, 0xFF0000, $LinkVisitedColor[$i]) Next EndIf WEnd WinSetState($Parent, "", @SW_ENABLE) GUIDelete($GUI_About) GUISwitch($aGUI[$g_hGUI]) Opt("GUIOnEventMode", $OldEventOpt) EndFunc ;==>_About Func ControlHover($hWnd, $CtrlID, $CtrlNum, ByRef $CurIsOnCtrlArr, $HoverColor = 0xFF0000, $LinkColor = 0x0000FF) Local $CursorCtrl = GUIGetCursorInfo($hWnd) ReDim $CurIsOnCtrlArr[UBound($CurIsOnCtrlArr) + 1] If $CursorCtrl[4] = $CtrlID And $CurIsOnCtrlArr[$CtrlNum] = 1 Then GUICtrlSetFont($CtrlID, 9, 400, 6) GUICtrlSetColor($CtrlID, $HoverColor) $CurIsOnCtrlArr[$CtrlNum] = 0 ElseIf $CursorCtrl[4] <> $CtrlID And $CurIsOnCtrlArr[$CtrlNum] = 0 Then GUICtrlSetFont($CtrlID, 9, 400, 0) GUICtrlSetColor($CtrlID, $LinkColor) $CurIsOnCtrlArr[$CtrlNum] = 1 EndIf EndFunc ;==>ControlHover #endregion Functions not written by me...and in attached is full script sources.ThanksFTP Explorer 3-17-10.zip Edited December 4, 2012 by HR78
water Posted December 4, 2012 Posted December 4, 2012 Bypassing logon screens is something we don't do here. According to the forum rules:"Bypassing of security measures - log-in and security dialogs, CAPTCHAs, anti-bot agents, software activation, etc."BTW: The code you posted is completely unreadable. My UDFs and Tutorials: Spoiler UDFs: Active Directory (NEW 2024-07-28 - Version 1.6.3.0) - Download - General Help & Support - Example Scripts - Wiki ExcelChart (2017-07-21 - Version 0.4.0.1) - Download - General Help & Support - Example Scripts OutlookEX (2021-11-16 - Version 1.7.0.0) - Download - General Help & Support - Example Scripts - Wiki OutlookEX_GUI (2021-04-13 - Version 1.4.0.0) - Download Outlook Tools (2019-07-22 - Version 0.6.0.0) - Download - General Help & Support - Wiki PowerPoint (2021-08-31 - Version 1.5.0.0) - Download - General Help & Support - Example Scripts - Wiki Task Scheduler (2022-07-28 - Version 1.6.0.1) - Download - General Help & Support - Wiki Standard UDFs: Excel - Example Scripts - Wiki Word - Wiki Tutorials: ADO - Wiki WebDriver - Wiki Â
HR78 Posted December 4, 2012 Author Posted December 4, 2012 (edited) sorry, I need script for upload and download files to and from my ftphost account, I need simple GUI with 3 1 buttons browse, upload and download and 1 window for view files for download. But I do not want to score every time host, user and password but to bet in the source.Mean this:#include #include #include #include #include Global $server = "ftp.test.com" Global $login32 = "username" Global $password = "password" #Region ### START Koda GUI section ### Form= $Form1 = GUICreate("Form1", 218, 165, 697, 253) $Button1 = GUICtrlCreateButton("Download", 8, 8, 55, 20) $Edit1 = GUICtrlCreateEdit("", 16, 56, 185, 89) GUICtrlSetData(-1, "") $Button2 = GUICtrlCreateButton("Upload", 88, 8, 55, 20) $Button3 = GUICtrlCreateButton("Browse", 148, 8, 55, 20) GUISetState(@SW_SHOW) #EndRegion ### END Koda GUI section ###when I start program, the program connect automatic to ftphost and in $Edit1 to display files on the server,when I select file in $Edit1 and click $Button1 - to download file, on click $Button3 - sellect file for upload, and if click on button 2 upload selected file... Edited December 5, 2012 by HR78
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now