1. Dashboard
  2. Mitglieder
    1. Letzte Aktivitäten
    2. Benutzer online
    3. Team
    4. Mitgliedersuche
  3. Forenregeln
  4. Forum
    1. Unerledigte Themen
  • Anmelden
  • Registrieren
  • Suche
Alles
  • Alles
  • Artikel
  • Seiten
  • Forum
  • Erweiterte Suche
  1. AutoIt.de - Das deutschsprachige Forum.
  2. Mitglieder
  3. autoBert

Beiträge von autoBert

  • Funnktionsfehler in_Array2D_DeleteRowCol() beheben

    • autoBert
    • 27. März 2011 um 23:17

    Hallo xXMurmelkotzeXx,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    Falsches Forum, entweder du postet dies im Thema des Authors als Bugmeldung oder im Forum Hilfe und Unterstützung.

    PS.: Nimm Rekursive FileList von Oscar da bin ich mir sicher dass es funktioniert.

    @Mod/Admin bitte verschieben,

    danke autoBert

  • Während bestimmtem Zeitraum keine Aktionen zulassen

    • autoBert
    • 27. März 2011 um 21:47

    Hallo Deep Volcano,

    wie wäre es mit

    [autoit]

    BlockInput;zusätzlich noch
    Break;

    [/autoit]

    mfg autoBert

  • Problem mit der InetGet Funktion

    • autoBert
    • 27. März 2011 um 17:14

    Hallo Softwareentwicklung,

    hier ein einfaches Donwloadexample mit InetGet und InetGetInfo:

    Spoiler anzeigen
    [autoit]

    #region ;**** Directives created by AutoIt3Wrapper_GUI ****
    #AutoIt3Wrapper_UseUpx=n
    #endregion ;**** Directives created by AutoIt3Wrapper_GUI ****
    #include <Date.au3>
    #include <array.au3>

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

    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.7") ; User-Agent (Header) von AutoIt3 ändern, da beim Webhoster dieser gesperrt ist

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

    Global $tDiff, $iToDo, $iRTime, $sMSG, $nKBPerSec
    $sUrl = "http://translation.autoit.de/autoitinfo/hilfedateien/AutoIt-Hilfe-Deutsch-3.3.6.1-Stand-09_05_10.zip"
    ;url eventell gegen einen anderen größeren Download tauschen, dann aber bitte auch $sPath ändern
    $sPath = @ScriptDir & "\AutoIt-Hilfe-Deutsch-3.3.6.1-Stand-09_05_10.zip"
    Global $iSize = InetGetSize($sUrl) ;siehe Hilfe zu InetgetSize
    Global $tStart = TimerInit()
    $hDownLoad = InetGet($sUrl, $sPath, 1, 1)
    Dim $aData[3]

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

    Do
    Sleep(250)
    If $aData[0] > 0 Then
    _CalcPerformance($aData[0], $aData[2])
    TrayTip("downloading", $sMSG, 10, 16)
    EndIf
    $aData = InetGetInfo($hDownLoad, -1)
    Until $aData[2]
    $aData = InetGetInfo($hDownLoad, -1)
    _CalcPerformance($aData[0], $aData[2])

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

    InetClose($hDownLoad) ; Handle schließen um die Resourcen freizugeben.
    MsgBox(0, "", "Bytes gelesen: " & $aData[0] & @CRLF & _
    "Größe: " & $aData[1] & @CRLF & _
    "beendet?: " & $aData[2] & @CRLF & _
    "Erfolgreich?: " & $aData[3] & @CRLF & _
    "@error: " & $aData[4] & @CRLF & _
    "@extended: " & $aData[5] & @CRLF & @CRLF & _
    "KiloBytes/sec: " & $nKBPerSec & @CRLF & _
    "benötigte Teit: " & Round($tDiff / 1000, 0) & " Sekunden")
    ConsoleWrite("Bytes gelesen: " & $aData[0] & @CRLF & _
    "Größe: " & $aData[1] & @CRLF & _
    "beendet?: " & $aData[2] & @CRLF & _
    "Erfolgreich?: " & $aData[3] & @CRLF & _
    "@error: " & $aData[4] & @CRLF & _
    "@extended: " & $aData[5] & @CRLF & @CRLF & _
    "KiloBytes/sec: " & $nKBPerSec & @CRLF & _
    "benötigte Teit: " & Round($tDiff / 1000, 0) & " Sekunden")

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

    ;FileDelete(@ScriptDir & "\Testdownload.htm")

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

    Func _CalcPerformance($iRead, $bDone)

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

    $tDiff = TimerDiff($tStart)
    $iToDo = Round(($iSize - $iRead) / 1024, 2)
    $nKBPerSec = Round($iRead / $tDiff * 1000 / 1024, 2)
    $iPercent = Round($iRead / $iSize * 100, 2)
    if ($iSize = 0) And Not $bDone Then
    $iRTime = "unbekannt"
    Else
    $iRTime = Round($iToDo / $nKBPerSec, 0)
    EndIf
    $sMSG = Round($iRead / 1024, 0) & "/" & Round($iSize / 1024, 0) & " KB " & " = " & $iPercent & "%" & @CRLF
    $sMSG &= "durchschnittlich KB/s = " & $nKBPerSec & @CRLF ;& "aktuell: KB/s " & $nKBAct & @CRLF
    If Not $bDone Then
    $sMSG = $sMSG & "vermutlich zu Ende:" & StringLeft(StringRight(_DateAdd('s', $iRTime, _NowCalc()), 8), 5)
    ;ConsoleWrite($sMSG & @CRLF)
    Else
    $sMSG = $sMSG & "benötigte Zeit = " & Round($tDiff / 1000, 0)
    EndIf
    ;if $iSize > 0 Then $sMSG = $sMSG & " sec"
    EndFunc ;==>_CalcPerformance

    [/autoit]

    Es wird die dt. Hilfe heruntergeladen,

    mfg autoBert

  • Function SystemParametersInfo erwartet 1D Array als pvParam

    • autoBert
    • 27. März 2011 um 05:17

    Hallo pPanther,

    warum nimmst du DLLCall und nicht

    [autoit]

    RegWrite

    [/autoit]

    mfg autoBert

  • Deutsche Hilfe - Funktionen ohne Beispiel

    • autoBert
    • 27. März 2011 um 03:40

    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

  • [UDF] OpenDocumentFormat, ODT, OpenOffice, LibreOffice

    • autoBert
    • 26. März 2011 um 18:53

    Hallo peethebee,

    dein Beispiel läuft auch bei mir einwandfrei. Jetzt wollte ich dass File automatisch ausdrucken:

    [autoit]

    ShellExecute(@ScriptDir & "\testfile2.odt","","print")

    [/autoit]

    hast du eine Idee, warum das nicht klappt?

    mfg autoBert

  • "zurück zum Anfang"

    • autoBert
    • 26. März 2011 um 18:40
    Zitat von ProblemUser

    Wichtig ist das jetzt noch eine neue Whileschleife zur zweitenGui ($GUI1) geöffnet werden muss.


    mehr als 1 While-Schleife die GuiGetMsg enthält führt oft zu Problemen ist zwar möglich aber die sauberste Lösung hat @progandy schon vorgeschlagenen:

    Zitat von progandy

    Du wirst wohl GUIGetMsg im extended Mode und GUIDelete/GuiSetstate benötigen.

    Bin der Meinung dass jemand der sein Skript nicht zeigen will und sich auch nicht die Mühe macht ein Beispiel zu skripten in dem das Problem deutlich wird auch nicht erwarten darf dass sich jemand die Mühe macht ein Beispiel für ihn zu skripten. Ausserdem gibt es (gefühlte) 1000 Threads zu diesem Thema,

    mfg autoBert

  • GUI hängt sich währrend des Downloadvorgangs auf

    • autoBert
    • 26. März 2011 um 18:22
    Zitat von Softwareentwicklung

    Ihr müsst mir helfen !!! ?(


    dann poste dein Skript so, dass man es auch ohne lästiges umformatieren benutzen kann. Alternativ kannst du es auch als Datei anhängnen,

    Edit: [Beispiel] Gesamtfortschritt mehrer Downloads anzeigen könnte dich auch interessieren
    mfg autoBert

  • AutoIT Schleife - Bestimmte Dateien in Userprofil(e) und Unterordner suchen

    • autoBert
    • 26. März 2011 um 13:57

    Hallo aIT-newUSER,

    du kannst doch auch von $sProfileDir ausgehend eine rekursive Dateisuche beginnen z.B. mit Hilfe von Rekursive FileList

    mfg autoBert

  • Listbox. Scollbars, Spaltenbreiten

    • autoBert
    • 26. März 2011 um 13:50
    Zitat von Gunter_s

    Die Hinweise mit #Include, EndFunc waren zwar richtig, aber sie hatte ich meinen vollständigen Script schon drin - nur nicht gepostet (Asche auf mein graues Haupt :( )

    Naja, da hätte ich mir die Mühe ja sparen können zum Glück habe ich irgedwann mit dem Fehler suchen aufgehört.

    Zitat

    _GUICtrlListView_SetColumnWidth

    Ändert die Breite einer Spalte

    [autoit]

    #Include <GuiListView.au3>
    _GUICtrlListView_SetColumnWidth($hWnd, $iCol, $iWidth)

    [/autoit]

    Quelle: dt. Hilfe

    mfg autoBert

  • Listbox. Scollbars, Spaltenbreiten

    • autoBert
    • 25. März 2011 um 21:38

    Hallo Gunter_s,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deinem Skript, denn es ist so mit Sicherheit nicht lauffähig denn 1. Tidy meldet:

    Code
    idy AutoIt3 v2.1.0.0   Copyright (c) Jos van der Zande  December 28, 2009
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(3) : ### Tidy Error -> "func" is never closed in your script.
    !> there were  1 error(s) encountered. look in your source for:### Tidy Error:
    +> Tidy AutoIt3 finished. Original copied to:"C:\Programme\AutoIt3\Examples\BackUp\asdfghkljhga_old1.au3"
    >Exit code: 1    Time: 0.372

    das sagt du hast vergessen die func List_Fill mit

    [autoit]

    Endfunc

    [/autoit]

    zu schliessen. Aber auch wenn ich ganz am Ende Endfunc einfüge (weis nicht ob es da sein soll) zeigt mir der AU3-Check folgende Fehler:

    Spoiler anzeigen
    Code
    >Running AU3Check (1.54.19.0)  from:C:\Programme\AutoIt3
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(1,36) : WARNING: $GUI: possibly used before declaration.
    $List = _GUICtrlListBox_Create($GUI,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(45,56) : ERROR: syntax error
    ;### Tidy Error -> func is never closed in your script.
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(1,36) : ERROR: $GUI: undeclared global variable.
    $List = _GUICtrlListBox_Create($GUI,
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(1,76) : ERROR: _GUICtrlListBox_Create(): undefined function.
    $List = _GUICtrlListBox_Create($GUI, "Belegung INIT-Datei", 10, 2, 580, 400)
    ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(8,46) : ERROR: _ExcelBookOpen(): undefined function.
    	$oExcel = _ExcelBookOpen($sFilePath, 0, True)
    	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(25,78) : ERROR: _GUICtrlListView_Create(): undefined function.
    	$View = _GUICtrlListView_Create($List, "Col 0|Col 1|Col 2", 10, 20, 580, 400)
    	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(29,37) : ERROR: _ExcelReadCell(): undefined function.
    	$s1 = _ExcelReadCell($oExcel, $i, 1)
    	~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(38,69) : ERROR: _GUICtrlListView_AddItem(): undefined function.
    		_GUICtrlListView_AddItem($View, _ExcelReadCell($oExcel, $i, 1), $j)
    		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3(39,75) : ERROR: _GUICtrlListView_AddSubItem(): undefined function.
    		_GUICtrlListView_AddSubItem($View, $j, _ExcelReadCell($oExcel, $i, 2), 1)
    		~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^
    C:\Programme\AutoIt3\Examples\asdfghkljhga.au3 - 8 error(s), 1 warning(s)
    !>21:09:24 AU3Check ended.rc:2
    >Exit code: 0    Time: 3.088
    Alles anzeigen

    du solltest die Hilfe durcharbeiten damit du verstehts was du schreibst. Einige Fehler beruhen darauf dass du die benötigten UDF 's vergessen hast, wie z.B.:

    [autoit]

    #include <Excel.au3>

    [/autoit]

    diese muss unbedingt sein wegen Excel. Alls Anfänger solltest du besser native AutoIt-Funktionen benutzen anstatt die UDF 's. Diese kannst du immer noch hinzufügen.
    Also anstatt mit

    [autoit]

    _GUICtrlListBox_Create

    [/autoit]

    erstellst du deine ListBox mit

    [autoit]

    GUICtrlCreateList

    [/autoit]

    und die Listview mit

    [autoit]

    GUICtrlCreateListView

    [/autoit]

    auch darfst du hier nicht die Listbox als Parent verwenden sondern die GUI.
    Bevor du allerdings Controls erstellst solltest du zuerst mit

    [autoit]

    GuiCreate

    [/autoit]

    eine Gui erstellen. Ich höre jetzt besser auf habe eh kein Excel installiert, aber du siehst du hast einiges zu lesen.

    mfg autoBert

  • AutoIT Schleife - Bestimmte Dateien in Userprofil(e) und Unterordner suchen

    • autoBert
    • 25. März 2011 um 20:48

    Hallo aIT-newUSER,

    herzlich willkommen im Forum und viel Spass mit AutoIt.

    Hier kannst du dir die deutsche Hilfe herunterladen.
    Hier gibt es ein AutoIt-Tutorial: http://wiki.autoit.de/wiki/index.php/TutorialSehr hilfreich ist auch das Buch von peethebee

    und jetzt zu deinen Fragen: dein eigenes Userprofil findest du mit dem Makro @UserProfileDir, teste dazu folgendes

    [autoit]

    MsgBox(0,"Mein Profilverzeichnis",@UserProfileDir)

    [/autoit]

    mit

    [autoit]

    $sProfileDir = StringReplace(@UserProfileDir,@UserName,"")

    [/autoit]

    kannst du den übergeordneten Ordner zu deinem Profilordner feststellen. Für die einzelnen Benutzer müsstest du dann jeweils den (dir bekannten) Namen wissen.
    Abhilfe schafft da mit Sicherheit die Active-Directory UDF von water.
    Um alle Dateien eines Ordners in ein Array zu lesen kannst du

    [autoit]

    _FileListToArray

    [/autoit]

    nehmen. Dieses kannst du dann in einer Schleife abarbeiten.

    mfg autoBert

  • [Beispiel] Gesamtfortschritt mehrer Downloads anzeigen

    • autoBert
    • 25. März 2011 um 18:51

    Hallo com,

    hier einmal ein kleines Beispiel wie man mehrere Downloads nacheinander machen kann und dabei in einer Progressbar den Fortschritt des Downloads der aktuellen Datei und in einer 2. den Gesamt-Fortschritt anzeigen lassen kann.

    Spoiler anzeigen
    [autoit]

    #include <WindowsConstants.au3>
    #include <StaticConstants.au3>
    #include <GUIConstantsEx.au3>
    #include <ProgressConstants.au3>
    #include <Array.au3>

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

    Opt('MustDeclareVars', 1)

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

    Local $sLocalPath = @ScriptDir & "\Test"
    If Not FileExists($sLocalPath) Then DirCreate($sLocalPath)

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

    Local $aFiles[5][4] ;zeile 0 für Gesamtgrösse Spalten 0=URL, 1=Lokaler Pfad, 2=DL-Grösse,3=erfolgreich
    Local $aData[1]
    $aFiles[0][0] = 4 ;Anzahl der Downloads
    $aFiles[0][1] = 0 ;wird im Skript für Bytes der getätigten Donwloads verwendet

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

    $aFiles[1][0] = "http://www.autoitscript.com/cgi-bin/getfile.pl?autoit3/autoit-v3-setup.exe"
    $aFiles[1][1] = $sLocalPath & "\autoit-v3-setup.exe"
    $aFiles[2][0] = "http://www.autoitscript.com/autoit3/files/beta/autoit/autoit-v3.3.5.6-beta-setup.exe"
    $aFiles[2][1] = $sLocalPath & "\autoit-v3.3.5.6-beta-setup.exe"
    $aFiles[3][0] = "http://translation.autoit.de/autoitinfo/hilfedateien/AutoIt-Hilfe-Deutsch-3.3.6.1-Stand-07_09_10.zip"
    $aFiles[3][1] = $sLocalPath & "\AutoIt-Hilfe-Deutsch-3.3.6.1-Stand-07_09_10.zip"
    $aFiles[4][0] = "http://www.autoitscript.com/forum/index.php?app=core&module=attach&section=attach&attach_app=core&module=attach&section=attach&attach_id=29947"
    $aFiles[4][1] = $sLocalPath & "\OrganizeInclides.zip"

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

    Local $wait, $s, $msg, $m, $hDL, $iPercent, $iPercentAll

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

    Local $hGuiMain = GUICreate("Download-Beispiel", 220, 100, 100, 200)

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

    DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 0) ; Classic-Style
    Local $progressbar1 = GUICtrlCreateProgress(10, 10, 200, 20)
    GUICtrlSetColor(-1, 32250); not working with Windows XP Style
    DllCall('uxtheme.dll', 'none', 'SetThemeAppProperties', 'int', 7) ; Standard-Windows-Style
    Local $hGuiChild1 = GUICreate("LABELGUI", 200, 20, 10, 10, $WS_POPUP, $WS_EX_MDICHILD, $hGuiMain)
    Local $Label1 = GUICtrlCreateLabel("", 10, 0, 200, 20, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 1400)
    WinSetTrans($hGuiChild1, "", 180)
    GUISwitch($hGuiMain)
    Local $progressbar2 = GUICtrlCreateProgress(10, 40, 200, 20, $PBS_SMOOTH)
    Local $button = GUICtrlCreateButton("Start", 75, 70, 70, 20)
    Local $hGuiChild2 = GUICreate("LABELGUI", 200, 20, 10, 40, $WS_POPUP, $WS_EX_MDICHILD, $hGuiMain)
    Local $Label2 = GUICtrlCreateLabel("", 10, 0, 200, 20, $SS_CENTER)
    GUICtrlSetFont(-1, 12, 1400)
    WinSetTrans($hGuiChild2, "", 180)
    GUICtrlSetState(-1, $GUI_DISABLE)
    GUICtrlSetBkColor(-1, -2)
    GUISetState(@SW_SHOW, $hGuiMain)
    GUISetState(@SW_SHOW, $hGuiChild1)
    GUISetState(@SW_SHOW, $hGuiChild2)
    WinActivate($hGuiMain)

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

    Do
    $msg = GUIGetMsg()
    Switch $msg
    Case $button
    GUICtrlSetState($button, $GUI_DISABLE)
    WinActivate($hGuiMain)
    For $i = 1 To $aFiles[0][0]
    $aFiles[$i][2] = InetGetSize($aFiles[$i][0]) ;Downloadgrösse ermitteln
    $aFiles[0][2] += $aFiles[$i][2] ;und auch zur Gesamtdownloadgrösse hinzuzählen
    Next
    ;_ArrayDisplay($aFiles)
    For $i = 1 To $aFiles[0][0]
    $hDL = InetGet($aFiles[$i][0], $aFiles[$i][1], 1, 1)
    $aData[0] = 0
    Do
    Sleep(250)
    $aData = InetGetInfo($hDL, -1)
    If $aData[0] > 0 Then
    $iPercent = Round($aData[0] / $aFiles[$i][2] * 100, 2)
    $aFiles[$i][3] = $iPercent
    $iPercentAll = Round(($aData[0] + $aFiles[0][1]) / $aFiles[0][2] * 100, 2)
    If GUICtrlRead($Label1) <> $iPercent Then
    GUICtrlSetData($progressbar1, $iPercent)
    GUICtrlSetData($Label1, $iPercent & " % Datei " & $i)
    EndIf
    If GUICtrlRead($Label2) <> $iPercentAll Then
    GUICtrlSetData($progressbar2, $iPercentAll)
    GUICtrlSetData($Label2, $iPercentAll & " % Gesamt")
    EndIf
    ConsoleWrite($i & ". File : " & $iPercent & " " & $iPercentAll & " " & $aFiles[0][1] & @CRLF) ;zu Debg-Zwecken kann auskommentiert werden
    If GUIGetMsg() = $GUI_EVENT_CLOSE Then Exit
    EndIf
    Until $aData[2]
    InetClose($hDL)
    $aFiles[0][1] += $aFiles[$i][2] ;gerade abgeschlossenen Download zu bereits heruntergeladen addieren
    If $aData[3] Then $aFiles[$i][3] = "100 %"
    Next
    $aFiles[0][0] = "URL"
    $aFiles[0][1] = "Lokaler Pfad"
    $aFiles[0][2] = "Grösse"
    $aFiles[0][3] = "Erfolg"
    _ArrayDisplay($aFiles, "Downloadergebnisse")
    Exit
    EndSwitch
    Until $msg = $GUI_EVENT_CLOSE

    [/autoit]

    Edit: Skript ausgetauscht

    mfg autoBert

  • einige fragen zu autoit

    • autoBert
    • 25. März 2011 um 15:49

    Einen Debugger kannst du hier herunterladen, er scheint aber nach dem was ich bisher dazu gelesen habe (sehr wenig) aber Schwierigkeiten mit den dt. Sonderzeichen zu haben und die Orginalcodierung (UTF) des Skriptes durcheinander zu brinegen also nur mit einer Arbeits-Kopie deines Skriptes testen.
    Benutze lieber die Tipps von Andy: https://autoit.de/index.php?page=Thread&amp;threadID=13785

    mfg autoBert

  • Deutsche Hilfe - Funktionen ohne Beispiel

    • autoBert
    • 25. März 2011 um 12:38

    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]
  • Update Funktion gesucht

    • autoBert
    • 25. März 2011 um 01:25
    Zitat von TechiTom

    => Da hattest du auch zur Lösung beigetragen AutoBert ^^

    Zitat von Ghostleader

    autoBert
    Ich habe das mal so eingebaut und muss sagen als Übergangslösung ist das eine echt tolle Sache!


    Da ging es aber nur um einen Teilbereich eines Updaters. Die Prüfung ob upgedatet werden muss ist nicht enthalten.

    @ophiel: in https://autoit.de/index.php?page=Thread&amp;threadID=20322 habe ich eine Automatischen Update eingebaut interessant für dich ist die letzte Region im Skript updater

    mfg autoBert

  • "Eigenschaften" von mp3 dateien entfernen

    • autoBert
    • 25. März 2011 um 01:11

    Hallo Zeusiboy,

    zu den ID3-Tags kann ich dir beim setzen nicht helfen. Ich habe noch keine UDF in der Richtung getestet.

    Beim rekursiven Durchsuchen hast du die freie Auswahl:
    https://autoit.de/index.php?page=Thread&amp;threadID=5202 von Oscar
    https://autoit.de/index.php?page=Thread&amp;threadID=17192 von Kleiner
    https://autoit.de/index.php?page=Thread&amp;threadID=18484 von AspirinJunkie
    und viele andere mehr

    mfg autoBert

  • Update Funktion gesucht

    • autoBert
    • 24. März 2011 um 21:52
    Zitat von TechiTom

    Ich habe eine Updatefunktion von dem Forum hier und die Funktioniert erste Sahne.

    wäre nett gewesen wenn du die Lösung nennst.

    Zitat von TechiTom

    Guck dir am besten nochmal genau alles an und nehme immer Threads die "Gelöst" sind, wenn du auf Nummer sicher gehen möchtest.

    und was ist dann mit den wohl besten Lösungen im Forum Skripte? Wobei im Forum H&U nach meiner Schätzung aus Bequemlichkeit leider über 2/3 offen bleiben. Aber auch anders herum in vielen gelösten Threads werden nur die Lösungshinweise bzw. Skriptteile gepostet ist also auch keine Garantie auf ein fertiges fehlerfreies Skript.

    Zitat von ophiel


    ich habe natürlich schon nen server aber trozdem willst nicht aber naja (danke für deine hilfe...)

    die meisten Freehoster verhindern Zugriffe von AutoIt die über InetGet, InetRead, _InetGetsource also HTTP erfolgen, dagegen hilft es den HTTP Useragenten anders zu setzen, z.B.:

    [autoit]

    HttpSetUserAgent("Mozilla/5.0 (Windows; U; Windows NT 5.1; de; rv:1.9.2.7) Gecko/20100713 Firefox/3.6.16")

    [/autoit]

    Afair hat Schnuffel einen Updater in seiner Signatur,

    mfg autoBert

  • Deutsche Hilfe - Funktionen ohne Beispiel

    • autoBert
    • 24. März 2011 um 19:48

    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

  • Deutsche Hilfe - Funktionen ohne Beispiel

    • autoBert
    • 24. März 2011 um 19:20

    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]

Spenden

Jeder Euro hilft uns, Euch zu helfen.

Download

AutoIt Tutorial
AutoIt Buch
Onlinehilfe
AutoIt Entwickler
  1. Datenschutzerklärung
  2. Impressum
  3. Shoutbox-Archiv
Community-Software: WoltLab Suite™