Hi,
folgende Situation. Ich habe meinen alten Pc zu nem Ftp-Server umfunktioniert. Weil bei uns aber aus irgendeinem mir unbefindlichem Grund die Netzwerkfunktion von Windows nicht funktioniert , musste ich immer über die Eingabeaufforderung auf den Server zugreifen. Das wurde mir dann aber zu aufwändig. Klar hätte ich Tools wie RealVNC oder dergleichen verwenden können, aber das ist nicht das richtige "Feeling" . Und deshalb hab ich mir ein kleines, für mich brauchbares, Script geschrieben.
OpenFtp_v2.5.exe
Spoiler anzeigen
#include <EditConstants.au3>
#include <GUIConstantsEx.au3>
#include <WindowsConstants.au3>
#include <String.au3>
#include <Ftp_Ex.au3>
If FileExists( "date.can" ) Then
$strg_co = iniread ( "date.can", "Strg", "thestrg", "NotFound" )
$strg =_HexToString ($strg_co)
$username_read = iniRead ( "date.can", "DatenN", "Name", "NotFound" )
$deco_user = _StringEncrypt(0, $username_read, $strg, 3)
$passwd_read = iniRead ( "date.can", "DatenP", "Pass", "NotFound" )
$deco_pass = _StringEncrypt(0, $passwd_read, $strg, 3)
$ip_read = iniRead ( "date.can", "DatenI", "Ip", "NotFound" )
$deco_ip = _StringEncrypt(0, $ip_read, $strg, 3)
$Ftp = GUICreate("Ftp-Server", 250, 200, 411, 284)
$de = GUICtrlCreateButton("Datei empfangen", 60, 20, 140, 25, 0)
$ds = GUICtrlCreateButton("Datei senden", 60, 60, 140, 25, 0 )
$Verbinden = GUICtrlCreateButton("Verbinden", 80, 100, 100, 25, 0)
$About = GUICtrlCreateButton("About", 80, 140, 100, 25, 0)
GUISetState(@SW_SHOW)
$user = $deco_user
$pass = $deco_pass
$ip = $deco_ip
While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Verbinden
$Ftp_e_s = GUICreate("Verbinden", 257, 171, 411, 284)
$List_des = GUICtrlCreateList("", 32, 40, 113, 84)
GUICtrlSetData(-1, "C:\|C:\Dok. und Eins.\|C:\Programme\|C:\...\Server\")
$go = GUICtrlCreateButton("Go", 160, 96, 75, 25, 0)
GUISetState(@SW_SHOW)
While 2
$nMsg1 = GUIGetMsg()
Switch $nMsg1
Case $GUI_EVENT_CLOSE
Exit
Case $go
$auswahl = GUICtrlRead ( $List_des )
Select
Case $auswahl = "C:\"
Run ( "ftp" )
Sleep ( 500 )
Send ( "open " )
Send ($ip)
Send ( "{EntEr}" )
Sleep ( 200 )
Send ( $user )
Send ( "{EntEr}" )
Sleep ( 200 )
Send ( $pass )
Send ( "{EntEr}" )
sleep ( 250 )
Send ( "cd ""C:\" )
Send ( "{EntEr}" )
Send ( "dir" )
Send ( "{EntEr}" )
Case $auswahl = "C:\Dok. und Eins.\"
Run ( "ftp" )
Sleep ( 500 )
Send ( "open " )
Send ($ip)
Send ( "{EntEr}" )
Sleep ( 200 )
Send ( $user )
Send ( "{EntEr}" )
Sleep ( 200 )
Send ( $pass )
Send ( "{EntEr}" )
sleep ( 250 )
Send ( "cd ""C:\Dokumente und Einstellungen\" )
Send ( "{EntEr}" )
Send ( "dir" )
Send ( "{EntEr}" )
Case $auswahl = "C:\Programme\"
Run ( "ftp" )
Sleep ( 500 )
Send ( "open ")
Send ($ip)
Send ( "{EntEr}" )
Sleep ( 200 )
Send ( $user )
Send ( "{EntEr}" )
Sleep ( 200 )
Send ( $pass )
Send ( "{EntEr}" )
sleep ( 250 )
Send ( "cd ""C:\Programme\" )
Send ( "{EntEr}" )
Send ( "dir" )
Send ( "{EntEr}" )
Case $auswahl = "C:\...\Server\"
Run ( "ftp" )
Sleep ( 500 )
Send ( "open ")
Send ($ip)
Send ( "{EntEr}" )
Sleep ( 200 )
Send ( $user )
Send ( "{EntEr}" )
Sleep ( 200 )
Send ( $pass )
Send ( "{EntEr}" )
sleep ( 250 )
Send ( "cd ""C:\Dokumente und Einstellungen\Name\Eigene Dateien\Downloads\Compressed\Server\" )
Send ( "{EntEr}" )
Send ( "dir" )
Send ( "{EntEr}" )
EndSelect
EndSwitch
WEnd
Case $de
$FtpE = GUICreate("Datei empfangen", 257, 171, 411, 284)
$List_de = GUICtrlCreateList("", 32, 40, 113, 84, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL))
GUICtrlSetData(-1, "C:\|C:\Dok. und Einst.\|C:\Programme\|C:\...\Server\")
$go = GUICtrlCreateButton("Go", 160, 96, 75, 25, 0)
GUISetState(@SW_SHOW)
While 2
$nMsg1 = GUIGetMsg()
Switch $nMsg1
Case $GUI_EVENT_CLOSE
Exit
Case $go
$auswahl = GUICtrlRead ( $List_de )
Select
Case $auswahl = "C:\"
$ftp_open = _FTPOpen ( "Ftp" )
$ftp_connect = _FTPConnect ( $ftp_open, $ip, $user, $pass )
$ftp_setdir = _FTPSetCurrentDir ( $ftp_connect, $auswahl )
$filee = InputBox ( "Datei empfangen", "Name der Datei eingeben: ")
$save = FileSaveDialog( "Wo soll die Datei gespeichert werden?", "C:\", "(*.*)" )
$ftp_get_progress = _FTP_DownloadProgress( $ftp_connect, $filee, $auswahl & $filee )
FileCopy( $ftp_get_progress, $save )
$ftpclose = _FTPclose ( "Ftp" )
Case $auswahl = "C:\Dok. und Einst."
$ftp_open = _FTPOpen ( "Ftp" )
$ftp_connect = _FTPConnect ( $ftp_open, $ip, $user, $pass )
$ftp_setdir = _FTPSetCurrentDir ( $ftp_connect, $auswahl )
$filee = InputBox ( "Datei empfangen", "Name der Datei eingeben: ")
$save = FileSaveDialog( "Wo soll die Datei gespeichert werden?", "C:\", "(*.*)" )
$ftp_get_progress = _FTP_DownloadProgress( $ftp_connect, $filee, "C:\Dokumente und Einstellungen\" & $filee )
FileCopy( $ftp_get_progress, $save )
$ftpclose = _FTPclose ( "Ftp" )
Case $auswahl = "C:\Programme\"
$ftp_open = _FTPOpen ( "Ftp" )
$ftp_connect = _FTPConnect ( $ftp_open, $ip, $user, $pass )
$ftp_setdir = _FTPSetCurrentDir ( $ftp_connect, $auswahl )
$filee = InputBox ( "Datei empfangen", "Name der Datei eingeben: ")
$save = FileSaveDialog( "Wo soll die Datei gespeichert werden?", "C:\", "(*.*)" )
$ftp_get_progress = _FTP_DownloadProgress( $ftp_connect, $filee, $auswahl & $filee )
FileCopy( $ftp_get_progress, $save )
$ftpclose = _FTPclose ( "Ftp" )
Case $auswahl = "C:\...\Server\"
$ftp_open = _FTPOpen ( "Ftp" )
$ftp_connect = _FTPConnect ( $ftp_open, $ip, $user, $pass )
$ftp_setdir = _FTPSetCurrentDir ( $ftp_connect, $auswahl )
$filee = InputBox ( "Datei empfangen", "Name der Datei eingeben: ")
$save = FileSaveDialog( "Wo soll die Datei gespeichert werden?", "C:\", "(*.*)" )
$ftp_get_progress = _FTP_DownloadProgress( $ftp_connect, $filee, "C:\Dokumente und Einstellungen\Name\Eigene Dateien\Downloads\Compressed\Server\" & $filee )
FileCopy( $ftp_get_progress, $save )
$ftpclose = _FTPclose ( "Ftp" )
EndSelect
EndSwitch
WEnd
Case $ds
$FtpS = GUICreate("Datei senden", 257, 171, 411, 284)
$List_ds = GUICtrlCreateList("", 32, 40, 113, 84, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL))
GUICtrlSetData(-1, "C:\|C:\Dok. und Einst.\|C:\Programme\|C:\...\Server\")
$go = GUICtrlCreateButton("Go", 160, 96, 75, 25, 0)
GUISetState(@SW_SHOW)
While 2
$nMsg1 = GUIGetMsg()
Switch $nMsg1
Case $GUI_EVENT_CLOSE
Exit
Case $go
$auswahl = GUICtrlRead ( $List_ds )
Select
Case $auswahl = "C:\"
$ftp_open = _FTPOpen ( "Ftp" )
$ftp_connect = _FTPConnect ( $ftp_open, $ip, $user, $pass )
$ftp_setdir = _FTPSetCurrentDir ( $ftp_connect, $auswahl )
$filee = InputBox ( "Datei senden", "Name der Datei eingeben: " )
$ftp_get_progress = _FTP_UploadProgress( $ftp_connect, $filee, $auswahl )
$ftpclose = _FTPclose ( "Ftp" )
Case $auswahl = "C:\Dok. und Einst."
$ftp_open = _FTPOpen ( "Ftp" )
$ftp_connect = _FTPConnect ( $ftp_open, $ip, $user, $pass )
$ftp_setdir = _FTPSetCurrentDir ( $ftp_connect, $auswahl )
$filee = InputBox ( "Datei senden", "Name der Datei eingeben: ")
$ftp_get_progress = _FTP_UploadProgress( $ftp_connect, $filee, "C:\Dokumente und Einstellungen\" & $filee )
$ftpclose = _FTPclose ( "Ftp" )
Case $auswahl = "C:\Programme\"
$ftp_open = _FTPOpen ( "Ftp" )
$ftp_connect = _FTPConnect ( $ftp_open, $ip, $user, $pass )
$ftp_setdir = _FTPSetCurrentDir ( $ftp_connect, $auswahl )
$filee = InputBox ( "Datei senden", "Name der Datei eingeben: ")
$ftp_get_progress = _FTP_UploadProgress( $ftp_connect, $filee, $auswahl & $filee )
$ftpclose = _FTPclose ( "Ftp" )
Case $auswahl = "C:\...\Server\"
$ftp_open = _FTPOpen ( "Ftp" )
$ftp_connect = _FTPConnect ( $ftp_open, $ip, $user, $pass )
$ftp_setdir = _FTPSetCurrentDir ( $ftp_connect, $auswahl )
$filee = InputBox ( "Datei senden", "Name der Datei eingeben: ")
$ftp_get_progress = _FTP_UploadProgress( $ftp_connect, $filee, "C:\Dokumente und Einstellungen\Tilman\Eigene Dateien\Downloads\Compressed\Server\" & $filee )
$ftpclose = _FTPclose ( "Ftp" )
EndSelect
EndSwitch
WEnd
Case $About
$ms = msgBox ( -1, "About", "A FTP-Server program made by cannTOice Copyright (C) 17.01.2009" )
Select
case $ms
EndSelect
EndSwitch
WEnd
Else
$Fenster = GUICreate ( "Ftp", 250, 200, 411, 284 )
$username = GUICtrlCreateInput ( "Username", 80, 40, 100, 25, 0 )
$passwd = GUICtrlCreateInput ( "Passwort", 80, 80, 100, 25, 0 )
$ip = GUICtrlCreateInput ( "Ip", 80, 120, 100, 25, 0 )
$strg = GUICtrlCreateInput ( "String", 80, 160, 100, 25, BitOR($ES_AUTOVSCROLL,$ES_AUTOHSCROLL))
GUISetState ( @sw_show )
While 1
HotKeySet ( "{EntEr}", "_enter" )
HotKeySet ( "{Esc}", "_esc" )
$nMsg = GUIGetMsg()
Switch $nMsg
case $GUI_EVENT_CLOSE
Exit
Func _esc()
exit 0
EndFunc
Func _enter()
$crypt_user = _StringEncrypt(1, GUICtrlRead($username), GUICtrlRead($strg), 3 )
$ini_user = IniWrite ( "date.can", "DatenN", "Name", $crypt_user )
$crypt_pass = _StringEncrypt(1, GUICtrlRead ($passwd), GUICtrlRead($strg), 3 )
$ini_pass = IniWrite ( "date.can", "DatenP", "Pass", $crypt_pass )
$crypt_ip = _StringEncrypt(1, GUICtrlRead ($ip), GUICtrlRead($strg), 3 )
$ini_ip = IniWrite ( "date.can", "DatenI", "IP", $crypt_ip )
$strg_en = GUICtrlRead ( $strg )
$crypt_strg = _StringToHex($strg_en)
$ini_strg = IniWrite ( "date.can", "Strg", "thestrg", $crypt_strg )
Select
case $ini_user
EndSelect
Select
Case $ini_pass
EndSelect
Select
Case $ini_ip
EndSelect
Select
Case $ini_strg
EndSelect
Exit
EndFunc
EndSwitch
WEnd
EndIf
autoit.de/wcf/attachment/3755/
Feedback und jegliche Art von Kritik erwünscht.
MfG,
cannTOice