Hallo Bitnugger,
mit deinem Script funktioniert es.
Allerdings muss ich jetzt 2 Monate Urlaub nehmen um dein Script zu verstehen.
Vielen Dank für die Mühe die du dir gemacht hast.
Allen anderen auch vielen Dank für eure Hilfe
Gruß Probierer
Hallo Bitnugger,
mit deinem Script funktioniert es.
Allerdings muss ich jetzt 2 Monate Urlaub nehmen um dein Script zu verstehen.
Vielen Dank für die Mühe die du dir gemacht hast.
Allen anderen auch vielen Dank für eure Hilfe
Gruß Probierer
Hallo Schnuffel,
das mit dem TimeOut funktioniert leider nicht.
Das Programm wird nach ca.30 Sek. beendet. Genau wie vorher.(Egal was ich als TimeOut einstelle)
Antwort:
Connect FAILED
>Exit code: 0 Time: 31.92
Lg
Hallo Schnuffel,
laut Internet ist das aber bei der Zentrale (CCU1 HomeMatic) leider so.
Habe ich jetzt schon oft gelesen und bei der Installation der Server-Software auf der Zentrale
wird man darauf hingewiesen, die Zeit auf 60 Sec. zu verlängern.
Lg
Hallo gmmg,
mit WinSCP klappt es.( Einstellungen: "Auf Antwort vom Server warten" 70 Sekunden )
Der Screenshot zeigt die Fehlermeldung wenn ich es mit AutoIt probiere.
Gruß Probierer
Hallo gmmg,
habe WinSCP installiert und bekomme auch eine Verbindung mit meinem Server wenn ich die Einstellung
"Auf Antwort vom Server warten" auf 70 Sekunden stelle.
Ich weiß nicht ob ich Dein Beispiel richtig verstanden habe, aber ich hab's mal probiert.
Die Antwort liegt im Anhang.
SCP.jpg
hat leider so nicht funktioniert.
RunWait('"C:\Program Files\WinSCP\WinSCP.com" /console /script=D:\Data\transfer.txt')
Lg
Hallo Oscar,
das Problem ist (glaube ich), daß mein FTP-Server erst nach einer Minute Antwortet.
FTP_Connect aber vorher abbricht.
Zeit: 30693.52484 Fehler: -1
Zeit: 60725.29428 Fehler: -1
Connect: -1
Connect müsste einfach länger warten.
Lg
Hallo Phil-IT,
ich bin mit AutoIt aber noch voll die Pfeife und weiß nicht wie ich FileZilla dazu bringe
aus meinem Programm heraus ne Datei auf meine HomeMatic-Zentrale zu übertragen.
Oder ne Datei von der Zentrale zu holen.
Lg
Hallo gmmg,
ich würde es gern in AutoIt selber machen. Das muss doch funktionieren.
Mit FileZilla geht's doch auch.
Lg
Hallo gmmg,
funktioniert leider auch nicht.
_FTP_Connect liefert eine 0 zurück
Lg
Danke schon mal im Voraus, dass ihr versucht mir zu helfen.
Lg
Hallo Phil-IT,
du hattest recht mit dem Download.
Wenn ich Versuche ne Datei herunterzuladen, die es nicht gibt, sieht die Fehlermeldung auch nicht
anders aus.
Leider weiß ich nicht genau wie diese Fehlermeldung zustande kommt
$sError = Open RemoteFile failed
_FTP_GetLastResponseInfo = 1
@error = 0
@extended = 6
oder was da genau angemeckert wird
Komisch ist ja, daß ich jetzt ja eine Verbindung bekomme.
Die Datei heruntergeladen wird diese aber leider leer ist.
Fällt niemand mehr etwas ein woran es noch liegen könnte?
Bringt leider nichts die Firewall auszuschalten.
Hallo Bitnugger,
die Datei wird jetzt heruntergeladen. Leider ist sie leer.
Gibt wohl noch ein Problem beim öffnen der Datei. (sehe ich das richtig?)
Nach dem Start wird die Datei aus dem Lokalen Verzeichnis gelöscht und steht am Ende
wieder drin. Leider ohne Daten.
Lg
AutoIt: 3.3.12.0, OS: WIN_7/SP1/X86, OSLang: 0407, CPUArch: X64, Script: D:\AutoIt\Programme\Fehlersuche\FTP_Fehlersuche_2.au3
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
alte Datei gelöscht...
OK: _FTP_Open() --> 0x00CC0004
Handle created
Resolving name ...
Name resolved
Connecting to server ...
Connected to server
Receiving response ...
Handle closing ...
Error: _FTP_Connect()
$hFTPSession = 0x00CC0004
$hFTPConnect = 0
$sServerName = 192.168.0.111
$sUsername =XXXXXX
$sPassword = XXXXXX
$iPassive = 1
_FTP_GetLastResponseInfo = 1
@error = 0
@extended = 0
OK: _FTP_Connect() --> 0
Error: _FTP_ProgressDownload()
$hFTPSession = 0x00CC0004
$hFTPConnect = 0
$sLocalFile = C:\Users\XXXXXXX\AppData\Local\Temp\Drucken.txt
$sRemoteFile = /var/usbstick/Drucken.txt
$sError = Open RemoteFile failed
_FTP_GetLastResponseInfo = 1
@error = 0
@extended = 6
OK: _FTP_ProgressDownload() - Download complete
From: /var/usbstick/Drucken.txt
To: C:\Users\XXXXXX\AppData\Local\Temp\Drucken.txt
>>>>>> Please close the "Report Log Window" to exit <<<<<<<
Hallo an alle.
Bin dem Problem etwas näher gekommen (hoffe ich).
Habe unter der _FTP_Connect Anweisung eine MsgBox eingefügt.
Es wird nun probiert die Datei herunterzuladen wird dann aber leider mit der Fehlermeldung abgebrochen:
Fehler bei _FTP_ProgressDownload: -3>Exit code: 0 Time: 48
@error = -3 - Quelldatei konnte nicht geöffnet werden
Kann sich mein Script mal jemand ansehen?
Durch die MsgBox die ich eingefügt habe bekomme ich so wie es aussieht Verbindung zum Server.
Lg
#include <FTPEx.au3>
$Open = _FTP_Open('myFTP')
; ...
$Ftpc = _FTP_Close($Open)
_example1()
#cs
Beispiel mit externem Progressfenster zur Demostration der Fortschrittsanzeige mit einer Benutzerfunktion
#ce
Func _example1()
Local $s_ServerName = "192.168.0.111" ;das ist ein real existierender Server
Local $s_Username = "XXXX"
Local $s_Password = "XXXXXXXX"
Local $i_Passive = 1 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann auch mit 1 für passive Verbung testen
Local $l_InternetSession, $l_FTPSession
Local $errOpen, $errFTP
MsgBox(0, "Verzeichnis", "" & @TempDir)
If FileExists(@TempDir & "\Drucken.txt") Then FileDelete(@TempDir & "\Drucken.txt") ;Nur um sicher zustellen dass das File nicht existiert
MsgBox(0, "Test1", "ErsteBox")
$l_InternetSession = _FTP_Open("myFTP") ;Öffnet eine FTP Sitzung
$errOpen = @error
MsgBox(0, "Test2", "ZweiteBox" & $errOpen)
If Not @error Then
MsgBox(0, "Test4", "VierteBox")
$l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
MsgBox(0, "Rückgabewert", "Rückgabewert: " & $l_InternetSession)
$errFTP = @error
If Not @error Then
MsgBox(0, "Test5", "FünfteBox")
ProgressOn("Download", "Status:", "")
MsgBox(0, "Verzeichnis 2", "" & @ScriptDir)
_FTP_ProgressDownload($l_FTPSession, @ScriptDir & "Drucken.txt", "\var\usbstick\Drucken.txt", "_UpdateProgress")
If @error Then ConsoleWrite("Fehler bei _FTP_ProgressDownload: " & @error)
ProgressOff()
Else
MsgBox(0, "Test3", "DritteBox")
MsgBox(0, "Connect", "fehlgeschlagen")
ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
EndIf
Else
MsgBox(0, "Open", "fehlgeschlagen")
ConsoleWrite("Open " & " " & $errOpen & @CRLF)
EndIf
_FTP_Close($l_InternetSession)
EndFunc ;==>_example1
Func _UpdateProgress($Prozent)
ProgressSet($Prozent, $Prozent & "%")
If _IsPressed("77") Then Return 0 ; Abbruch bei F8
Return 1 ; bei 1 Fortsetzen
EndFunc ;==>_UpdateProgress
Alles anzeigen
Hallo Andy,
daß das Script funktioniert glaube ich schon.
Aber leider funktioniert der Zugriff auf meinen FTP-Server nicht wenn ich die IP, Benutzername und Passwort von meinem
FTP-Server angebe.
Ich denke die Wartezeit, bis eine Fehlermeldung kommt müsste einfach länger sein. Eine Antwort von meinem FTP-Server
lässt leider 60 Sekunden auf sich warten.
Lg
Hallo Bitnugger,
hier ist das Ergebnis.
OK - _FTP_Open
- $hOpen = 0x00CC0004
Closing connection ... | Size = 13369352 Bytes Bytes read = 4
Resolving name ...
Name resolved
Connecting to server ...
Connected to server
UNKNOWN status = 40
Handle closing ...
~~~~~~~~~~~~~~~~~~~~~
FAIL - _FTP_Connect
- @error = 0
- @extended = 0
~~~~~~~~~~~~~~~~~~~~~
Closing connection ... | Size = 13369352 Bytes Bytes read = 4
Connecting to server ...
Connected to server
UNKNOWN status = 40
Handle closing ...
~~~~~~~~~~~~~~~~~~~~~
FAIL - _FTP_Connect
- @error = 0
- @extended = 0
~~~~~~~~~~~~~~~~~~~~~
Closing connection ... | Size = 13369352 Bytes Bytes read = 4
Resolving name ...
Handle closing ...
~~~~~~~~~~~~~~~~~~~~~
FAIL - _FTP_Connect
- @error = 0
- @extended = 0
~~~~~~~~~~~~~~~~~~~~~
Closing connection ... | Size = 13369352 Bytes Bytes read = 4
Connecting to server ...
Connected to server
UNKNOWN status = 40
Handle closing ...
~~~~~~~~~~~~~~~~~~~~~
FAIL - _FTP_Connect
- @error = 0
- @extended = 0
~~~~~~~~~~~~~~~~~~~~~
Closing connection ... | Size = 13369352 Bytes Bytes read = 4
Connecting to server ...
Connected to server
UNKNOWN status = 40
Handle closing ...
~~~~~~~~~~~~~~~~~~~~~
FAIL - _FTP_Connect
- @error = 0
- @extended = 0
~~~~~~~~~~~~~~~~~~~~~
Closing connection ... | Size = 13369352 Bytes Bytes read = 4
Connecting to server ...
Connected to server
UNKNOWN status = 40
Handle closing ...
~~~~~~~~~~~~~~~~~~~~~
FAIL - _FTP_Connect
- @error = 0
- @extended = 0
~~~~~~~~~~~~~~~~~~~~~
Closing connection ... | Size = 13369352 Bytes Bytes read = 4
Connecting to server ...
Connected to server
UNKNOWN status = 40
Handle closing ...
~~~~~~~~~~~~~~~~~~~~~
FAIL - _FTP_Connect
- @error = 0
- @extended = 0
~~~~~~~~~~~~~~~~~~~~~
Closing connection ... | Size = 13369352 Bytes Bytes read = 4
Connecting to server ...
Connected to server
UNKNOWN status = 40
Handle closing ...
~~~~~~~~~~~~~~~~~~~~~
FAIL - _FTP_Connect
- @error = 0
- @extended = 0
~~~~~~~~~~~~~~~~~~~~~
>>>>>> Please close the "Report Log Window" to exit <<<<<<<
Was sagt mir das Ergebnis ???
Habe die Funktionen rauskopiert und einige MsgBoxen gemacht
Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0)
MsgBox (0, "FTP_Connect", "Bin drin") Diese Box kommt
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)
Nach dieser Zeile ist wohl eine Fehlermeldung vorhanden und ich flieg raus
MsgBox (0,"DLLCall", "DLLCall" ) Diese Box kommt
If @error OR $ai_InternetConnect[0] = 0 Then
MsgBox (0, "Fehler", "" &@error &@CRLF &$ai_InternetConnect ) und diese Box kommt leider auch
SetError(-1)
Return 0
EndIf
Return $ai_InternetConnect[0]
EndFunc ;==> _FTPConnect()