Habe da mal eine Frage.
Was ist das "Long" in der FTP.au3 ?
Ich habe grad keine Ahnung welche Variable ich für "Long" einsetzen soll...
Hilfe
http://www.autoitscript.com/forum/index.php?act=attach&type=post&id=3314
Frage: FTP.au3
-
- [ offen ]
-
flugzeugin -
23. März 2008 um 16:52 -
Geschlossen -
Erledigt
-
-
Hi,
das kommt ja in einem DLL Aufruf vor. Dort ist es einfach nur ein Stringparameter, der den Typ einer Variablen festlegt, die an die DLL-Funktion übergeben wird. Da AutoIt für die Basistypen nicht streng typisiert ist (völlig egal ob ich int, long, double, float, string in einer Variablen speichere), aber bei einem DLL Aufruf die Anzahl der Bytes, die über den Stack übergeben werden, bekannt sein muss, bieten diese Parameter beim Aufruf einer DLL-Funktion die Möglichkeit der expliziten Typdeklarierung.
Oder so ähnlich
Gruß,
TrueMu
-
ich galub sie meint das:
Spoiler anzeigen
Parameter(s): $l_FTPSession - The Long from _FTPConnect()
wobei ich jetz au nicht wüsste wie ich die FTPSEssion dann difinier.
vllt mit $ai_InternetConnect ?
-
Das ist einfach nur der Rückgabewert von _FTPConnect, also:
$l_FTPSession = _FTPConnect()
Wenn der Connect erfolgreich ist, ist $l_FTPSession einfach ein Identifier, deshalb long.
Gruß,
TrueMu
-
In Ordnung. Danke. Noch eine letzte Fareg:
Wenn ich die Funktion benutze, also zum Beispiel _FTPConnect(), reicht es, wenn ich einfach nur
_FTPConnect() schreibe oder muss ich alles was da steht in die Klammer rein tun?
-
[autoit]
Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort = 0, $l_Service = 1, $l_Flags = 0, $l_Context = 0)
[/autoit]
$l_internetSession bekommst du ja von FTP_open()
den servernamen usernamen und das password musst du eintragen! ansonsten = error
allerdings ist hierbei der port, der service und die flags sowie der context optional!MfG azu
-
Ich hab mir das ganze mal angeschaut. Ich bekomms au nich hin...
Spoiler anzeigen
[autoit];==============================================================================
[/autoit] [autoit][/autoit] [autoit]
;Upload
;==============================================================================;FTP Open
[/autoit] [autoit][/autoit] [autoit]
;==============================================================================$s_Agent = "Upload"
[/autoit] [autoit][/autoit] [autoit]
$l_AccessType = 1
$s_ProxyName = ''
$s_ProxyBypass = ''
$l_Flags = 0Func _FTPOpen($s_Agent)
[/autoit] [autoit][/autoit] [autoit]
Local $ai_InternetOpen = DllCall('wininet.dll', 'long', 'InternetOpen', 'str', $s_Agent, 'long', $l_AccessType, 'str', $s_ProxyName, 'str', $s_ProxyBypass, 'long', $l_Flags)
If @error OR $ai_InternetOpen[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_InternetOpen[0]
EndFunc ;==> _FTPOpen();FTP Connect
[/autoit] [autoit][/autoit] [autoit]
;==============================================================================
$Open = _FTPOpen($s_Agent)
$l_InternetSession = $Open ;The Long from _FTPOpen()
$s_ServerName = "musterserver.de"
$s_Username = "muster"
$s_Password = "server"
$i_ServerPort = 0 ;Server port ( 0 is default (21) )
$l_Service = 1
$l_Flags = 0
$l_Context = 0
Func _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort, $l_Service, $l_Flags, $l_Context)
Local $ai_InternetConnect = DllCall('wininet.dll', 'long', 'InternetConnect', 'long', $l_InternetSession, 'str', $s_ServerName, 'int', $i_ServerPort, 'str', $s_Username, 'str', $s_Password, 'long', $l_Service, 'long', $l_Flags, 'long', $l_Context)
If @error OR $ai_InternetConnect[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_InternetConnect[0]
EndFunc ;==> _FTPConnect();FTP FileUpload
[/autoit] [autoit][/autoit] [autoit]
;================================================================================
$Conn = _FTPConnect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_ServerPort, $l_Service, $l_Flags, $l_Context)
$l_FTPSession = $Conn ;The Long from _FTPConnect()
$s_LocalFile = @ScriptDir & "\logisch.html"
$s_RemoteFile = "/logisch.html" ;The remote Location for the file.
$l_Flags = 0
$l_Context = 0Func _FTPPutFile($l_FTPSession, $s_LocalFile, $s_RemoteFile, $l_Flags, $l_Context)
[/autoit] [autoit][/autoit] [autoit]Local $ai_FTPPutFile = DllCall('wininet.dll', 'int', 'FtpPutFile', 'long', $l_FTPSession, 'str', $s_LocalFile, 'str', $s_RemoteFile, 'long', $l_Flags, 'long', $l_Context)
[/autoit] [autoit][/autoit] [autoit]
If @error OR $ai_FTPPutFile[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_FTPPutFile[0]
EndFunc ;==> _FTPPutFile();FTP Close
[/autoit] [autoit][/autoit] [autoit]
;===================================================================================Func _FTPClose($l_InternetSession)
[/autoit]
Local $ai_InternetCloseHandle = DllCall('wininet.dll', 'int', 'InternetCloseHandle', 'long', $l_InternetSession)
If @error OR $ai_InternetCloseHandle[0] = 0 Then
SetError(-1)
Return 0
EndIf
Return $ai_InternetCloseHandle[0]
EndFunc ;==> _FTPClose()
keine fehlermeldung,nichts. aber die file wird nicht geuploaded...
Edit: Was ist denn Proxybypass bzw was muss man da eingeben? -
Danke für die Antworten. Ich habs mal versucht aber irgendwie nicht hingekriegt.
Außerdem plagt mich grad auch das selbe Problem wie Dönn3y.
Kann da niemand helfen?