Deutsche Hilfe - Funktionen ohne Beispiel

  • ok hier das naächste passt am besten zu _FTP_ProgressDownload könnte aber natürlich ach für _FTP_Open nd _FTP_Connect verwendet werden,

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <FTPEx.au3>
    #include <Misc.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _example1()
    _example2()

    [/autoit] [autoit][/autoit] [autoit]

    #cs
    Beispiel mit externem Progressfenster zur Demostration der Fortschrittsanzeige mit einer Benutzerfunktion
    #ce
    Func _example1()
    Local $s_ServerName = 'ftp.csx.cam.ac.uk' ;das ist ein real exitierender Server
    Local $s_Username = ''
    Local $s_Password = ''
    Local $i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann ach mit 1 für passive Verbung testen
    Local $l_InternetSession, $l_FTPSession
    Local $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists(@TempDir & "\tmp.tmp") Then FileDelete(@TempDir & "\tmp.tmp") ;Nur um sicher zustellen dass das File nicht existiert

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    ProgressOn("Download", "Status:","coded autoBert 2011")
    _FTP_ProgressDownload($l_FTPSession, @ScriptDir & "\tmp.tmp", "README", "_UpdateProgress")
    If @error Then ConsoleWrite("Fehler bei _FTP_ProgressDownload: " & @error)
    ProgressOff()
    Else
    MsgBox(0, "Connect", "fehlgeschalagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschalagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession)
    EndFunc ;==>_example1

    [/autoit] [autoit][/autoit] [autoit]

    Func _UpdateProgress($Prozent)
    ProgressSet($Prozent, $Prozent & "%")
    If _IsPressed("77") Then Return 0 ; Abbruch bei F8
    Return 1 ; bei 1 Fortsetzten
    EndFunc ;==>_UpdateProgress

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _example2()
    #cs
    Beispiel mit eingebauter Fortschrittsanzeige von _FTP_ProgressDownload
    #ce
    Local $s_ServerName = 'ftp.csx.cam.ac.uk' ;das ist ein real exitierender Server
    Local $s_Username = ''
    Local $s_Password = ''
    Local $i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann ach mit 1 für passive Verbung testen
    Local $l_InternetSession, $l_FTPSession
    Local $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    If FileExists(@TempDir & "\tmp.tmp") Then FileDelete(@TempDir & "\tmp.tmp") ;Nur um sicher zustellen dass das File nicht existiert

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    _FTP_ProgressDownload($l_FTPSession, @ScriptDir & "\tmp.tmp", "README")
    If @error Then ConsoleWrite("Fehler bei _FTP_ProgressDownload: " & @error)
    Else
    MsgBox(0, "Connect", "fehlgeschalagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschalagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession)
    EndFunc ;==>_example2

    [/autoit]
  • ok jetzt das letzte für heute passt am besten zu _FTP_FilePut könnte aber natürlich ach für _FTP_Open nd _FTP_Connect verwendet werden.

    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <FTPEx.au3>

    [/autoit][autoit][/autoit][autoit]

    Opt('MustDeclareVars', 1)

    [/autoit][autoit][/autoit][autoit]

    _example()

    [/autoit][autoit][/autoit][autoit]

    Func _example()
    Local $s_ServerName = 'guest.autobert.myplace.net' ;dieser Server existiert nicht
    Local $s_Username = "guest"
    Local $s_Password = "TopSecret"

    [/autoit][autoit][/autoit][autoit]

    Local $s_LocalFile = @ScriptDir & "\ReadMeTest.txt"
    Local $s_RemoteFile = "/FTPTestfiles/_FTP_FilePut.au3"
    Local $i_Passive = 0
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP

    [/autoit][autoit][/autoit][autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    If _FTP_FilePut($l_FTPSession, $s_LocalFile, $s_RemoteFile) Then
    ConsoleWrite("Upload: erfolgreich" & @CRLF)
    Else
    ConsoleWrite("Upload: fehlgeschlagen " & " " & @error & @CRLF)
    EndIf
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
    EndFunc ;==>_example

    [/autoit]

    PS.: habe vor so nach und nach die ganzen FTP-Files durchzumachen 1. Ausnahme kenne ich schon _FTP_DirPutContents es lädt zwar etwas auf meinen Server dort sind aber JPG-Dateien alle ungefähr gleich gross und zusammen entsprechen sie überschlagsmässig ungefähr der Grösse des hochgeladenen Ordners. Da es aber kein _FTP_DirGetContents gibt das aus diesen Dateien wieder den Originalordner anlegt ist es derzeit nutzlos,
    Edit: aus obigen Grund ein 2. Beispiel dass alle Dateien eines Ordner hochlädt:

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <FTPEx.au3>
    #include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _example1()
    _example2()

    [/autoit] [autoit][/autoit] [autoit]

    Func _example1()
    ;lädt eine Datei hoch
    Local $s_ServerName = 'guest.autobert.myplace.net' ;dieser Server existiert nicht
    Local $s_Username = "guest"
    Local $s_Password = "TopSecret"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $s_LocalFile = @ScriptDir & "\_FTP_FilePut3.au3"
    Local $s_RemoteFile = "/FTPTestfiles/_FTP_FilePut3.au3"
    Local $i_Passive = 0
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    If _FTP_FilePut($l_FTPSession, $s_LocalFile, $s_RemoteFile) Then
    ConsoleWrite("Upload: erfolgreich" & @CRLF)
    Else
    ConsoleWrite("Upload: fehlgeschlagen " & " " & @error & @CRLF)
    EndIf
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
    EndFunc ;==>_example1

    [/autoit] [autoit][/autoit] [autoit]

    Func _example2()
    ;lädt alle Dateien eines Ordner mithilfe _FTP_FilePut auf den FTP-Server (noch ohne Unterordner)
    Local $s_ServerName = 'guest.autobert.myplace.net' ;dieser Server existiert nicht
    Local $s_Username = "guest"
    Local $s_Password = "TopSecret"

    [/autoit] [autoit][/autoit] [autoit]

    Local $s_LocalFolder = @ScriptDir ;das angegebene Verzsichnis muss existieren
    Local $s_RemoteFolder = "/FTPTestfiles/Test/" ;dieser Ordner wird notfalls angelegt
    Local $i_Passive = 0 ;manche Server benötigen hier eine 1 für Passiven Modus
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    _FolderPut($l_FTPSession, $s_LocalFolder, $s_RemoteFolder, "_FTP*3.au3") ;kopiert alle au3 Dateien
    If Not @error Then
    ConsoleWrite("_FolderPut: " & @extended & " Dateien erfolgreich übertragen" & @CRLF)
    Else
    ConsoleWrite("_FolderPut Fehler:" & @error & " " & @extended & @CRLF)
    EndIf
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die Sitzung
    EndFunc ;==>_example2

    [/autoit] [autoit][/autoit] [autoit]

    Func _FolderPut($l_FTPSession, $s_LocalFolder, $s_RemoteFolder, $sFilter = "*")
    Local $bDebugFP = True ;um Debuginfos an- auszuschalten
    If $bDebugFP Then ConsoleWrite("Lokal " & $s_LocalFolder & " Remote " & $s_RemoteFolder & @CRLF)
    if StringRight($s_RemoteFolder,1) <> "/" Then $s_RemoteFolder &= "/"
    if StringLeft($s_RemoteFolder,1) <> "/" Then $s_RemoteFolder = "/" & $s_RemoteFolder
    Local $aPathSplit = StringSplit($s_RemoteFolder, "/")
    _ArrayDisplay($aPathSplit)
    For $i = 2 To $aPathSplit[0] -1 ;Element 1 ist leer ebenso letztes durch StringTrim.....
    If $bDebugFP Then ConsoleWrite($aPathSplit[$i])
    _FTP_DirSetCurrent($l_FTPSession, $aPathSplit[$i])
    If @error Then
    If $bDebugFP Then ConsoleWrite(@TAB & "wird versucht anzulegen" & @TAB)
    _FTP_DirCreate($l_FTPSession, $aPathSplit[$i])
    _FTP_DirSetCurrent($l_FTPSession, $aPathSplit[$i])
    If @error Then
    If $bDebugFP Then ConsoleWrite("Fehler " & @error & @CRLF)
    SetError(1, $i)
    Return 0
    Else
    If $bDebugFP Then ConsoleWrite("OK" & @crlf)
    EndIf
    Else
    If $bDebugFP Then ConsoleWrite("/")
    EndIf
    Next
    If $bDebugFP Then ConsoleWrite(@CRLF & "Aktuelles Verzeichnis" & _FTP_DirGetCurrent($l_FTPSession) & @CRLF)
    Local $aUpload_Files = _FileListToArray($s_LocalFolder, $sFilter, 1)
    Local $iErrors = 0
    Local $iSuccess = 0
    For $i = 1 To $aUpload_Files[0]
    If $bDebugFP Then ConsoleWrite($aUpload_Files[$i] & @TAB)
    If _FTP_FilePut($l_FTPSession, $aUpload_Files[$i], $aUpload_Files[$i]) Then
    $iSuccess +=1
    If $bDebugFP Then ConsoleWrite("OK" & @CRLF)
    Else
    $iErrors += 1
    If $bDebugFP Then ConsoleWrite("Fehler: " & @error & @CRLF)
    EndIf
    Next
    if $iErrors > 0 Then
    SetError(2, $iErrors, 0)
    Else
    SetExtended($iSuccess)
    EndIf
    EndFunc ;==>_FolderPut

    [/autoit]

    dieses Beispiel passt auch zu _FTP_DirSetCurrent und _FTP_DIRCreate

    Edit: 2. Beispiel ausgetauscht (Errorhandling und Debug-Infos erweitert)

    mfg autoBert

    5 Mal editiert, zuletzt von autoBert (3. April 2011 um 18:36)

  • dieses passt am besten zu _FTP_FileGet könnte aber natürlich auch für _FTP_Open und _FTP_Connect verwendet werden.

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <FTPEx.au3>
    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _example()

    [/autoit] [autoit][/autoit] [autoit]

    Func _example()
    Local $s_ServerName = 'ftp.csx.cam.ac.uk' ;das ist ein real exitierender Server
    Local $s_Username = ''
    Local $s_Password = ''
    Local $i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann ach mit 1 für passive Verbung testen

    [/autoit] [autoit][/autoit] [autoit]

    Local $s_LocalFile = @TempDir & "\tmp.txt"
    Local $s_RemoteFile = "README"
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    If _FTP_FileGet($l_FTPSession, $s_RemoteFile, $s_LocalFile) Then
    ShellExecute($s_LocalFile)
    ConsoleWrite("Download: erfolgreich" & @CRLF)
    Else
    ConsoleWrite("Download: fehlgeschlagen " & " " & @error & @CRLF)
    EndIf
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
    EndFunc ;==>_example

    [/autoit]
  • dieses passt am besten zu _FTP_DirPtContents könnte aber natürlich auch für _FTP_DirCreate, _FTP_Open und _FTP_Connect verwendet werden.

    Spoiler anzeigen
    [autoit]

    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #include <FTPEx.au3>
    #include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _example()

    [/autoit] [autoit][/autoit] [autoit]

    Func _example()
    ;lädt alle Dateien eines Ordner den FTP-Server
    ;coded autoBert 2011 der entscheidene Hinweis kam per PN von AsiX-5
    Local $s_ServerName = 'guest.autobert.myplace.net' ;dieser Server existiert nicht
    Local $s_Username = "guest"
    Local $s_Password = "TopSecret"

    [/autoit] [autoit][/autoit] [autoit]

    Local $s_LocalFolder = "C:\grails-1.0.2"
    Local $s_RemoteFolder = "/grails-1.02" ;diesr Ordner wird notfalls angelegt
    Local $i_Passive = 0 ;manche Server benötigen hier eine 1 für Passiven Modus
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    _FTP_DirCreate($l_FTPSession,$s_RemoteFolder) ;Remoteordner erstellen niccht vergessen!
    if @error then ConsoleWrite("Zielordner bestand schon" & @CRLF)
    _FTP_DirPutContents($l_FTPSession, $s_LocalFolder, $s_RemoteFolder, True) ;kopiert inklsive nterordner alles auf den FTP
    If @error Then ConsoleWrite("UpLoad" & @error & @CRLF)
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
    EndFunc ;==>_example

    [/autoit]

    mfg autoBert

  • ieses passt am besten zu _FTP_FileRead, _FTP_FileGetSize, _FTP_FileOpen. Könnte aber natürlich auch für _FTP_Open und _FTP_Connect verwendet werden.

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <FTPEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _example()

    [/autoit] [autoit][/autoit] [autoit]

    Func _example()
    Local $s_ServerName = 'ftp.csx.cam.ac.uk' ;das ist ein real exitierender Server
    Local $s_Username = ''
    Local $s_Password = ''
    Local $i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann ach mit 1 für passive Verbung testen
    Local $s_RemoteFile = "README"
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP, $h_File, $sText, $iLen

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    $iLen = _FTP_FileGetSize ($l_FTPSession,$s_RemoteFile)
    $h_File = _FTP_FileOpen($l_FTPSession, $s_RemoteFile)
    If Not @error Then
    $sText = BinaryToString(_FTP_FileRead($h_File,$iLen))
    If Not @error Then
    MsgBox(0, "Fileread", $sText)
    _FTP_FileClose($h_File)
    Else
    ConsoleWrite("FileRead: fehlgeschlagen " & " " & @error & @CRLF)
    EndIf
    Else
    ConsoleWrite("FileOpen: fehlgeschlagen " & " " & @error & @CRLF)
    EndIf
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
    EndFunc ;==>_example1

    [/autoit] [autoit][/autoit] [autoit][/autoit]

    2 Mal editiert, zuletzt von autoBert (6. April 2011 um 19:26)

  • dieses passt am besten zu _FTP_FileRename, könnte aber natürlich auch für _FTP_Open und _FTP_Connect verwendet werden.

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_AU3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <FTPEx.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _example()

    [/autoit] [autoit][/autoit] [autoit]

    Func _example()
    ;benennt eine Datei auf dem FTP-Server um
    Local $s_ServerName = 'guest.autobert.myplace.net' ;dieser Server existiert nicht
    Local $s_Username = "guest"
    Local $s_Password = "TopSecret"
    Local $i_Passive = 0 ;aktive Verbindung nutzen wenn bei anderen Server Probleme dann ach mit 1 für passive Verbung testen
    Local $s_OldName = "readme2.txt"
    Local $s_NewName = "readme.txt"
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    _FTP_FileRename($l_FTPSession, $s_OldName, $s_NewName)
    If Not @error Then
    ConsoleWrite("FileRename: in Ordnung " & @CRLF)
    Else
    ConsoleWrite("FileRename: fehlgeschlagen " & " " & @error & @CRLF)
    EndIf
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
    EndFunc ;==>_example

    [/autoit]
  • Ich hätte ein Testscript für NamedPipes.
    Ist etwas umfangreicher als ein normales Beispiel.

    Beide Scripte kompilieren und dann starten.
    Die Scripte können beliebig beendet und wieder gestartet werden, die Verbindung sollte jedesmal wieder aufgebaut werden.

    Sender.au3

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiRichEdit.au3>
    #include <Memory.au3>
    #include <NamedPipes.au3>
    #include <WinAPI.au3>
    #include <WinAPIError.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Opt("MustDeclareVars", 1)
    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hGui = GUICreate("Sender", 400, 600, @DesktopWidth / 2 + 5)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    Global $hREdit = _GUICtrlRichEdit_Create($hGui, "", 5, 5, 390, 590, BitOR($ES_MULTILINE, $WS_VSCROLL, $WS_HSCROLL, $ES_READONLY))
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $sPIPE_NAME = "\\.\pipe\AutoItPipe"

    [/autoit] [autoit][/autoit] [autoit]

    Global $hPipe

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $iBufferSize = 256

    [/autoit] [autoit][/autoit] [autoit]

    Global $tBuffer = DllStructCreate("byte[" & $iBufferSize & "];")
    Global $pBuffer = DllStructGetPtr($tBuffer)
    Global $iBuffer = 0

    [/autoit] [autoit][/autoit] [autoit]

    Global $iWritten = 0
    Global $iByte = 0
    Global $iStatus

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $ERROR_INVALID_HANDLE = 0x6
    Global Const $ERROR_IO_PENDING = 0x3E5
    Global Const $ERROR_PIPE_CONNECTED = 0x217
    Global Const $ERROR_NO_DATA = 0xE8

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    Sleep(Random(500, 2000, 1))

    [/autoit] [autoit][/autoit] [autoit]

    _BufferAddData($iByte, 12)
    $iByte += 1

    [/autoit] [autoit][/autoit] [autoit]

    If $iBuffer > 0 Then
    If $iByte > 0xFF Then $iByte = 0

    [/autoit] [autoit][/autoit] [autoit]

    $iStatus = _WinAPI_WriteFile($hPipe, $pBuffer, $iBuffer, $iWritten, 0)
    If $iStatus = 0 Then
    _Log("! Write Error " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    _NamedPipes_DisconnectNamedPipe($hPipe)
    _Log("> Disconnect " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    _WinAPI_CloseHandle($hPipe)
    _Log("> Close " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    $hPipe = _WinAPI_CreateFile($sPIPE_NAME, 2, 6)
    If $hPipe = 0 Then
    _Log("! Pipe creation failed " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    Else
    _Log("+ Pipe creation OK " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    EndIf
    Else
    _Log("+ " & $iWritten & " Bytes written")
    _BufferRemoveData($iWritten)
    EndIf
    EndIf
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _BufferRemoveData($iLen)
    If $iLen > $iBuffer Then $iLen = $iBuffer
    Local $iMove = $iBuffer - $iLen
    _MemMoveMemory($pBuffer + $iLen, $pBuffer, $iMove)
    $iBuffer = $iMove
    _Log("> " & $iLen & " Bytes removed, " & $iMove & " Bytes left")
    EndFunc ;==>_BufferRemoveData

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _BufferAddData($iByte, $iLen = 14)
    Local $iOver = ($iLen + $iBuffer) - $iBufferSize
    If $iOver > 0 Then
    _Log("- Buffer overflow: " & $iOver)
    _BufferRemoveData($iOver)
    EndIf
    For $i = $iBuffer To $iBuffer + $iLen
    DllStructSetData($tBuffer, 1, $iByte, $i + 1)
    Next
    $iBuffer += $iLen
    _Log("> Bufferdata: " & $iBuffer & " " & BinaryMid(DllStructGetData($tBuffer, 1), 1, $iBuffer))
    EndFunc ;==>_BufferAddData

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    MsgBox(0, "", "")
    _GUICtrlRichEdit_Destroy($hREdit)
    ;_WinAPI_CloseHandle($hPipe)
    Exit
    EndFunc ;==>_Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Log($sLog)
    Local Static $iLogPos = 0
    Local $aSel

    [/autoit] [autoit][/autoit] [autoit]

    $sLog = StringRegExpReplace($sLog, "[\r|\n]*", "")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_AppendText($hREdit, $sLog & @CRLF)
    _GUICtrlRichEdit_SetSel($hREdit, $iLogPos, -1, True)
    _GUICtrlRichEdit_SetFont($hREdit, 9, "Courier New")

    [/autoit] [autoit][/autoit] [autoit]

    Switch StringLeft($sLog, 1)
    Case "!"
    _GUICtrlRichEdit_SetCharColor($hREdit, 0x0000F7)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "+bo")
    Case ">"
    _GUICtrlRichEdit_SetCharColor($hREdit, 0xFF0000)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "-bo")
    Case "-"
    _GUICtrlRichEdit_SetCharColor($hREdit, 0x0088FF)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "+bo")
    Case "+"
    _GUICtrlRichEdit_SetCharColor($hREdit, 0x007F00)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "+bo")
    Case Else
    _GUICtrlRichEdit_SetCharColor($hREdit, 0)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "-bo")
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    $aSel = _GUICtrlRichEdit_GetSel($hREdit)
    $iLogPos = $aSel[1] - 1
    EndFunc ;==>_Log

    [/autoit]


    Empfänger.au3:

    Spoiler anzeigen
    [autoit]

    #include <EditConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <GuiRichEdit.au3>
    #include <NamedPipes.au3>
    #include <WinAPI.au3>
    #include <WinAPIError.au3>
    #include <WindowsConstants.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt("MustDeclareVars", 1)
    Opt("GUIOnEventMode", 1)

    [/autoit] [autoit][/autoit] [autoit]

    Global $hGui = GUICreate("Empänger", 400, 600, @DesktopWidth / 2 - 405)
    GUISetOnEvent($GUI_EVENT_CLOSE, "_Exit")
    Global $hREdit = _GUICtrlRichEdit_Create($hGui, "", 5, 5, 390, 590, BitOR($ES_MULTILINE, $WS_VSCROLL, $WS_HSCROLL, $ES_READONLY))
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $sPIPE_NAME = "\\.\pipe\AutoItPipe"

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $iPipeBuffer = 512

    [/autoit] [autoit][/autoit] [autoit]

    Global $hPipe = _NamedPipes_CreateNamedPipe($sPIPE_NAME, 2, 3, 0, 0, 0, 0, 5, $iPipeBuffer, $iPipeBuffer)
    _Log("> New Pipe " & $hPipe & " " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    Global Const $iBufferSize = 256

    [/autoit] [autoit][/autoit] [autoit]

    Global $tBuffer = DllStructCreate("byte[" & $iBufferSize & "];")
    Global $pBuffer = DllStructGetPtr($tBuffer)
    Global $iBuffer = DllStructGetSize($tBuffer)

    [/autoit] [autoit][/autoit] [autoit]

    Global $iRead = 0
    Global $iStatus

    [/autoit] [autoit][/autoit] [autoit]

    Global Const $ERROR_INVALID_HANDLE = 0x6
    Global Const $ERROR_IO_PENDING = 0x3E5
    Global Const $ERROR_PIPE_CONNECTED = 0x217
    Global Const $ERROR_BROKEN_PIPE = 0x6D

    [/autoit] [autoit][/autoit] [autoit]

    _NamedPipes_ConnectNamedPipe($hPipe)
    _Log("+ Client Connected")

    [/autoit] [autoit][/autoit] [autoit]

    While 1
    $iStatus = _WinAPI_ReadFile($hPipe, $pBuffer, $iBuffer, $iRead, 0)
    If $iStatus = 0 Then
    If _WinAPI_GetLastError() = $ERROR_BROKEN_PIPE Then
    _Log("! Broken Pipe " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    _NamedPipes_DisconnectNamedPipe($hPipe)
    _Log("> Disconnect " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    _WinAPI_CloseHandle($hPipe)
    _Log("> Close " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    $hPipe = _NamedPipes_CreateNamedPipe($sPIPE_NAME, 2, 2, 0, 0, 0, 0, 1, 32, 32)
    If $hPipe = 0 Then
    _Log("! Pipe creation failed " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    Else
    _Log("+ Pipe creation OK " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    _NamedPipes_ConnectNamedPipe($hPipe)
    _Log("> Connect " & _WinAPI_GetLastError() & " " & _WinAPI_GetLastErrorMessage())
    EndIf
    EndIf
    Else
    _Log("+ " & $iRead & " Bytes read: " & BinaryMid(DllStructGetData($tBuffer, 1), 1, $iRead))
    EndIf
    Sleep(10)
    WEnd

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Exit()
    MsgBox(0, "", "")
    _GUICtrlRichEdit_Destroy($hREdit)
    Exit
    EndFunc ;==>_Exit

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Func _Log($sLog)
    Local Static $iLogPos = 0
    Local $aSel

    [/autoit] [autoit][/autoit] [autoit]

    $sLog = StringRegExpReplace($sLog, "[\r|\n]*", "")

    [/autoit] [autoit][/autoit] [autoit]

    _GUICtrlRichEdit_AppendText($hREdit, $sLog & @CRLF)
    _GUICtrlRichEdit_SetSel($hREdit, $iLogPos, -1, True)
    _GUICtrlRichEdit_SetFont($hREdit, 9, "Courier New")

    [/autoit] [autoit][/autoit] [autoit]

    Switch StringLeft($sLog, 1)
    Case "!"
    _GUICtrlRichEdit_SetCharColor($hREdit, 0x0000F7)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "+bo")
    Case ">"
    _GUICtrlRichEdit_SetCharColor($hREdit, 0xFF0000)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "-bo")
    Case "-"
    _GUICtrlRichEdit_SetCharColor($hREdit, 0x0088FF)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "+bo")
    Case "+"
    _GUICtrlRichEdit_SetCharColor($hREdit, 0x007F00)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "+bo")
    Case Else
    _GUICtrlRichEdit_SetCharColor($hREdit, 0)
    _GUICtrlRichEdit_SetCharAttributes($hREdit, "-bo")
    EndSwitch

    [/autoit] [autoit][/autoit] [autoit]

    $aSel = _GUICtrlRichEdit_GetSel($hREdit)
    $iLogPos = $aSel[1] - 1
    EndFunc ;==>_Log

    [/autoit] [autoit][/autoit] [autoit][/autoit]
  • Hm,
    ist denke ich (leider) für die Hilfe ungünstig.
    Es sollte nur aus einer au3-Datei bestehen die nicht kompiliert werden muss.
    Außerdem sollte es kürzer sein, damit man sich schneller zurecht findet :whistling:

  • Ich weiß nicht, ob ein Beispiel für _GDIPlus_BitmapCreateGraphics so sinnvoll ist. Die Funktion wird sicher auch in anderen Beispielen oft verwendet und lässt sich eigentlich nicht demonstrieren ohne einige andere GDI+ Funktionen. :S
    Ich habe dennoch mal Versucht ein möglichst einfaches Beispiel zu schreiben:

    _GDIPlus_BitmapCreateFromGraphics
    [autoit]

    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $iWidth = 400, $iHeight = 400
    Global $hWnd, $hGraphics, $hBitmap, $hBitmapContext, $hBrush_Yellow, $hBrush_Blue

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("GDI+ Bitmap Beispiel", 400, 400)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd) ;Grafik für die GUI erzeugen
    $hBitmap = _GDIPlus_BitmapCreateFromGraphics($iWidth, $iHeight, $hGraphics) ;Bitmap aus der Grafik erzeugen (Inhalt der Grafik wird nicht kopiert!)
    $hBitmapContext = _GDIPlus_ImageGetGraphicsContext($hBitmap) ;Grafik für die Bitmap erzeugen, den Inhalt verändern zu können

    [/autoit] [autoit][/autoit] [autoit]

    $hBrush_Yellow = _GDIPlus_BrushCreateSolid(0xFFFFFF00) ;Gelbes Brush-Object erzeugen
    $hBrush_Blue = _GDIPlus_BrushCreateSolid(0xFF0000FF) ;Blaues Brush-Object erzeugen

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsClear($hBitmapContext, 0xFFFFFFFF) ;Gesamte Bitmap weiß färben
    _GDIPlus_GraphicsFillRect($hBitmapContext, 50, 50, 200, 200, $hBrush_Blue) ;Zeichnet ein Blau ausgefülltes Rechteck auf die Bitmap (nicht die GUI!)
    _GDIPlus_GraphicsFillEllipse($hBitmapContext, 150, 150, 200, 300, $hBrush_Yellow) ;Zeichnet eine gelbe Ellipse auf die Bitmap

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_GraphicsDrawImageRect($hGraphics, $hBitmap, 0, 0, $iWidth, $iHeight) ;Zeichnet die Bitmap mit ihrem Inhalt auf die GUI

    [/autoit] [autoit][/autoit] [autoit]

    ;Ressourcen aufräumen!
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_GraphicsDispose($hBitmapContext)
    _GDIPlus_BitmapDispose($hBitmap)
    _GDIPlus_BrushDispose($hBrush_Yellow)
    _GDIPlus_BrushDispose($hBrush_Blue)
    _GDIPlus_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    While GUIGetMsg() <> -3
    WEnd

    [/autoit]


    Und hier noch ein Beispiel für _GDIPlus_SetSmoothingMode und _GDIPlus_GetSmoothingMode. Das Beispiel ergibt aber leider wohl nur wenig Sinn, weil die Funktion sich überhaupt nicht verhält wie es in der Hilfe beschrieben wird. Google spuckt auch nicht all zu viel Hilfreiches aus, aber vielleicht weiß ja einer unser GDI+ Experten weiter ;).

    _GDIPlus_GraphicsSet/GetSmoothingMode
    [autoit]

    #include <GDIPlus.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Global $iWidth = 400, $iHeight = 400
    Global $hWnd, $hGraphics

    [/autoit] [autoit][/autoit] [autoit]

    $hWnd = GUICreate("GDI+ Smoothing Beispiel", 400, 400)
    GUISetState()

    [/autoit] [autoit][/autoit] [autoit]

    _GDIPlus_Startup()

    [/autoit] [autoit][/autoit] [autoit]

    $hGraphics = _GDIPlus_GraphicsCreateFromHWND($hWnd) ;Grafik für die GUI erzeugen

    [/autoit] [autoit][/autoit] [autoit]

    ;- Ohne Kantenglättung:
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, 0)
    _GDIPlus_GraphicsFillEllipse($hGraphics, 20, 100, 160, 200) ;Zeichnet eine schwarze Ellipse auf die GUI [links]
    ConsoleWrite("Aktueller Kantenglättungsmodus: " & _GDIPlus_GraphicsGetSmoothingMode($hGraphics) & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ;- Mit Kantenglättung:
    _GDIPlus_GraphicsSetSmoothingMode($hGraphics, 2)
    _GDIPlus_GraphicsFillEllipse($hGraphics, 220, 100, 160, 200) ;[rechts]
    ConsoleWrite("Aktueller Kantenglättungsmodus: " & _GDIPlus_GraphicsGetSmoothingMode($hGraphics) & @CRLF)

    [/autoit] [autoit][/autoit] [autoit]

    ;Ressourcen aufräumen!
    _GDIPlus_GraphicsDispose($hGraphics)
    _GDIPlus_Shutdown()

    [/autoit] [autoit][/autoit] [autoit]

    While GUIGetMsg() <> -3
    WEnd

    [/autoit]
  • Und hier noch ein Beispiel zu _FTP_DirDelete

    Spoiler anzeigen
    [autoit]

    #Region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_Au3Check_Parameters=-d -w 1 -w 2 -w 3 -w 4 -w 5 -w 6
    #EndRegion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <FTPEx.au3>
    #include <File.au3>
    #include <Array.au3>

    [/autoit] [autoit][/autoit] [autoit]

    Opt('MustDeclareVars', 1)

    [/autoit] [autoit][/autoit] [autoit]

    _example1()

    [/autoit] [autoit][/autoit] [autoit]

    Func _example1()
    Local $s_ServerName = 'ftp.nowhere.de' ;dieser Server existiert nicht
    Local $s_Username = "autobert"
    Local $s_Password = "topSecret"

    [/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]

    Local $s_RemoteFolder = "/FTPTestfiles/" ;dieser Ordner wird gelöscht
    Local $i_Passive = 1
    Local $l_InternetSession, $l_FTPSession, $errOpen, $errFTP

    [/autoit] [autoit][/autoit] [autoit]

    $l_InternetSession = _FTP_Open('AuoItZilla') ;Öffnet eine FTP Sitzung
    $errOpen = @error
    If Not @error Then
    $l_FTPSession = _FTP_Connect($l_InternetSession, $s_ServerName, $s_Username, $s_Password, $i_Passive) ;Verbindet zu einem FTP Server
    $errFTP = @error
    If Not @error Then
    If _FTP_DirDelete($l_FTPSession, $s_RemoteFolder) Then
    ConsoleWrite("Löschen von " & $s_RemoteFolder & " erfolgreich" & @CRLF)
    Else
    If _FTP_DirRemove($l_FTPSession, $s_RemoteFolder, True) Then
    ConsoleWrite("Löschen von " & $s_RemoteFolder & " erfolgreich" & @CRLF)
    Else
    ConsoleWrite("Löschen von " & $s_RemoteFolder & " fehlgeschlagen" & @CRLF)
    EndIf
    EndIf
    Else
    MsgBox(0, "Connect", "fehlgeschlagen")
    ConsoleWrite("Connect: " & " " & $errFTP & @CRLF)
    EndIf
    Else
    MsgBox(0, "Open", "fehlgeschlagen")
    ConsoleWrite("Open " & " " & $errOpen & @CRLF)
    EndIf
    _FTP_Close($l_InternetSession) ;schliesst die FTP-Sitzng
    EndFunc ;==>_example1

    [/autoit] [autoit][/autoit] [autoit]

    ;===============================================================================
    ; Function Name: _FTP_DirRemove($l_FTPSession, $sDir, $bDebug, $idProgress, $idLblPercent, $idLblFile)
    ; Description:: Löscht den amgegebenen Ordner inkl. aller Unterverzeichnisse
    ; Parameter(s): $l_FTPSession das von _FTP_Connect zurückgegebene Handle
    ; $sDir Verzeichnispfad, der gelöscht werden soll
    ; $bDebug optional True protokolliert in der Konsole
    ; $idProgress " ID des Fortschrittbalkens
    ; $idLblPercent " ID des Labels für Prozentanzeige
    ; $idLblFile " ID des Labels für aktuelle Aktion
    ; Demo Ja
    ;
    ; Autor(s): autoBert (http://www.autoit.de)
    ;
    ; zur freien Benutzung in eigenen Skripten und auch zur freien Weitergabe unter der Vorgabe,
    ; dass diese Funktionsbeschreibumg inkl. Autor nicht enfernt wird
    ;===============================================================================
    Func _FTP_DirRemove($l_FTPSession, $sDir, $bDebug = False, $idProgress=0, $idLblPercent=0, $idLblFile=0)
    If StringRight($sDir, 1) <> "/" Then $sDir &= "/"
    Local $aResult[1], $iPercent, $iRes = 1
    ToolTip('Zusammen stellen der Vereichnisliste, bitte warten ...') ;kann auskommentiert werden
    _FTP_FileList_Rekursiv($l_FTPSession, $aResult, $sDir, True)
    _ArrayInsert($aResult, 1, $sDir)
    $aResult[0] += 1
    if $bDebug Then _ArrayDisplay($aResult)
    For $i = $aResult[0] To 1 Step -1
    if $bDebug Then ConsoleWrite($aResult[$i] & @TAB)
    If $idLblFile > 0 Then GUICtrlSetData($idLblFile,$aResult[$i])
    If StringRight($aResult[$i], 1) = "/" Then
    If _FTP_DirDelete($l_FTPSession, $aResult[$i]) Then
    if $bDebug Then ConsoleWrite("Ordner gelöscbt")
    Else
    $iRes = 0
    if $bDebug Then ConsoleWrite("Ordner NICHT gelöscbt")
    EndIf
    Else
    If _FTP_FileDelete($l_FTPSession, $aResult[$i]) Then
    if $bDebug Then ConsoleWrite("Datei gelöscbt")
    Else
    if $bDebug Then ConsoleWrite("Datei NICHT gelöscbt")
    EndIf
    EndIf
    $iPercent = Round(100 - ($i/$aResult[0]*100),2)
    If $idLblPercent > 0 Then GUICtrlSetData($idLblPercent,$iPercent)
    If $idProgress > 0 Then GUICtrlSetData($idProgress,$iPercent)
    if $bDebug Then ConsoleWrite(@TAB & $iPercent & @CRLF)
    Next
    Return $iRes
    EndFunc ;==>_FTP_DirRemove
    ;===============================================================================
    ; Function Name: _FTP_FileList_Rekursiv($l_FTPSession, $aResult, $sPath, $bFolders)
    ; Description:: füllt ein Array mit Dateien (und Verzeichnissen wenn $bFolders true) des FTP-Pfades inkl. aller Unterverzeichnisse
    ; Parameter(s): $l_FTPSession das von _FTP_Connect zurückgegebene Handle
    ; $aResult = das Array in dem die Ergebnisse eingefügt werden
    ; $sPath = Verzeichnispfad, der eingefügt werden soll
    ; $bFolders = True = auch Verzeichnisse einfügen, False = nur Dateien, Default = nur Dateien
    ;
    ; Autor(s): autoBert (http://www.autoit.de)
    ;
    ; zur freien Benutzung in eigenen Skripten und auch zur freien Weitergabe unter der Vorgabe,
    ; dass diese Funktionsbeschreibumg inkl. Autor nicht enfernt wird
    ;===============================================================================
    Func _FTP_FileList_Rekursiv($l_FTPSession, ByRef $aResult, $sPath, $bFolders = False)
    Local $aFiles, $aFolders
    If $sPath <> "" Then
    _FTP_DirSetCurrent($l_FTPSession, $sPath)
    ;if _FTP_DirGetCurrent($l_FTPSession) <> $sPath Then Exit
    EndIf
    $aFiles = _Ftp_ListToArray($l_FTPSession, 2)
    If IsArray($aFiles) Then
    ;_ArrayDisplay($aFiles)
    If $aFiles[0] > 0 Then
    For $i = 1 To $aFiles[0]
    _ArrayAdd($aResult, $sPath & "/" & $aFiles[$i])
    ;ConsoleWrite("File: " & $sPath & "/" & $aFiles[$i] & @CRLF)
    Next
    EndIf
    EndIf
    $aFolders = _Ftp_ListToArray($l_FTPSession, 1)
    ;_ArrayDisplay($aFolders)
    If IsArray($aFolders) Then
    If $aFolders[0] > 0 Then
    For $i = 1 To $aFolders[0]
    If $aFolders[$i] <> '.' And $aFolders[$i] <> '..' Then
    ;ConsoleWrite("Folder: " & $sPath & "/" & $aFolders[$i] & @CRLF)
    If $bFolders Then _ArrayAdd($aResult, $sPath & "/" & $aFolders[$i] & "/")
    _FTP_FileList_Rekursiv($l_FTPSession, $aResult, $sPath & "/" & $aFolders[$i], $bFolders)
    EndIf
    Next
    EndIf
    EndIf
    $aResult[0] = UBound($aResult) - 1
    EndFunc ;==>_FTP_FileList_Rekursiv

    [/autoit]

    mfg autoBert

  • Die bereits hier gelisteten sollte man aussortieren. z.b. das Beispiel von zu den _GUIToolTip gehen nichtmehr in der aktuellen Version.

    Andy hat mir ein Schnitzel gebacken aber da war ein Raupi drauf und bevor Oscar das Bugfixen konnte kam Alina und gab mir ein AspirinJunkie.

  • Danke chip,
    habe die 3 ToolTip Beispiele wieder als fehlend notiert.
    Sonst sind nun die fehlenden Beispiele von 3.3.8.1 statt 3.3.6.1 im ersten Post enthalten.

    Alle mithelfen :!:

  • _WinAPI_WaitForMultipleObjects, _WinAPI_CreateEvent, _WinAPI_ResetEvent, (_WinAPI_CloseHandle)

    [autoit]

    #include <WinAPI.au3>
    #include <WinAPIProc.au3> ;needed for _WinAPI_ResetEvent

    [/autoit][autoit][/autoit][autoit]

    Global $tEvents = DllStructCreate("handle Event[3];")
    $tEvents.Event(1) = _WinAPI_CreateEvent(0, True, False)
    $tEvents.Event(2) = _WinAPI_CreateEvent(0, True, False)
    $tEvents.Event(3) = _WinAPI_CreateEvent(0, True, False)

    [/autoit][autoit][/autoit][autoit]

    HotKeySet("{ESC}", "_Exit")
    AdlibRegister("_FireEvent_1", 500)
    AdlibRegister("_FireEvent_2", 800)

    [/autoit][autoit][/autoit][autoit]

    Global $iEvent
    While 1
    ;$iEvent = _WinAPI_WaitForMultipleObjects(3, $tEvents, False, 100) ;Maybe future version
    $iEvent = _WinAPI_WaitForMultipleObjects(3, DllStructGetPtr($tEvents), False, 100)
    Switch $iEvent
    Case 0
    ConsoleWrite("+ First Event" & @CRLF)
    _WinAPI_ResetEvent($tEvents.Event(1))
    Case 1
    ConsoleWrite("> Second Event" & @CRLF)
    _WinAPI_ResetEvent($tEvents.Event(2))
    Case 2
    ConsoleWrite("! Exit Event" & @CRLF)
    AdlibUnRegister("_FireEvent_1")
    AdlibUnRegister("_FireEvent_2")
    _WinAPI_CloseHandle($tEvents.Event(1))
    _WinAPI_CloseHandle($tEvents.Event(2))
    _WinAPI_CloseHandle($tEvents.Event(3))
    ExitLoop
    Case -1 ;Error
    ExitLoop
    EndSwitch
    WEnd

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _Exit()
    _WinAPI_SetEvent($tEvents.Event(3))
    EndFunc ;==>_Exit

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _FireEvent_1()
    _WinAPI_SetEvent($tEvents.Event(1))
    EndFunc ;==>_FireEvent_1

    [/autoit][autoit][/autoit][autoit][/autoit][autoit]

    Func _FireEvent_2()
    _WinAPI_SetEvent($tEvents.Event(2))
    EndFunc ;==>_FireEvent_2

    [/autoit]
  • Tweaky 12. September 2020 um 21:32

    Hat das Thema geschlossen.