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. Tweaky

Beiträge von Tweaky

  • Versionsnummer aus dem Dateinamen des Scriptes ermitteln

    • Tweaky
    • 20. Juni 2007 um 17:48

    immer alles ab der ersten Zahl

  • Versionsnummer aus dem Dateinamen des Scriptes ermitteln

    • Tweaky
    • 20. Juni 2007 um 17:44

    Wenn aber der Name z B. so heißt
    "Internet Tool 02 Test02"
    geht dies nicht X(

    Gibt es keine Funktion die nach der ersten Zahl sucht?

  • Versionsnummer aus dem Dateinamen des Scriptes ermitteln

    • Tweaky
    • 20. Juni 2007 um 17:36

    Hi,
    ich würde gerne die Versionsnummer meiner AutoIt Scripte in das Script hineinschreiben.

    Meine Scripte heißen z. B.
    Internettool 01 Test02.exe
    oder
    Internettool 02.exe

    Nun will ich die Versionsnummer "01 Test02" bzw. "02" haben

    Wie geht dies :D

  • Alle Dateien auflisten - Fehler wenn Ordner leer

    • Tweaky
    • 18. Juni 2007 um 19:49

    Habs geändert, immernoch der gleiche Fehler

    Spoiler anzeigen
    [autoit]

    #include<Date.au3>
    #include<Array.au3>
    #include<File.au3>
    #include<_ArrayDblDel.au3>

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

    ;Nummer des ersten zu kopierenden Ordners
    $start = 0

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

    ;Nummer des letzten zu kopierenden Ordners
    $ende = 0

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

    ;Nummer des letzten zu überspringenden Ordners
    $ende2 = 0

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

    ;~ Dim $dir[$ende+1]
    Dim $ordner[$ende+1]
    Dim $ausschliessen[$ende2+1]
    Dim $array_gesamt_liste, $anzahl, $anzahl_array, $array_gesamt, $anzahl_array2, $array_gesamt2, $array_gesamt_ok2, $anzahl2, $anzahl_gesamt, $merken_alt, $ziel, $ordner_Dateiname, $quelle, $zielordner, $dateiname
    Dim $Entscheidung
    Dim $Quell_Pf_[$ende+1][2] ; [n][0] = Pfad; [n][1] = gerundete Größe
    Dim $goend = 0

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

    ;Datumsoptionen
    $iWeekday = _DateToDayOfWeek(@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd('d', 0, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate, "/", ".")

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

    ;~ ;Quell-Laufwerk
    $Quell_LW = "D:\"

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

    ;~ ;Quell-Ordner (ohne Laufwerksbuchstabe)
    $ordner[0] = "Video"

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

    ;~ ;Quell-Ordner zusammengesetzt
    $Quell_Pf_[0][0] = $Quell_LW & $ordner[0] & "\"

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

    ;~ ;Ziel-Laufwerk
    $Ziel_LW = "C:\"
    $Ziel_Pf = $Ziel_LW & "Sicherung Internet\" & $sNewDate & "\"

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

    ;folgende Ordner bei der Sicherung ausschließen
    $ausschliessen[0] = "D:\alt"

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

    _gesamt_array_erstellen()

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

    ;***********************************************************************
    ; Funktion komplettes Array mit allen zu kopierenden Dateien erstellen *
    ;***********************************************************************

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

    Func _gesamt_array_erstellen()
    ;~ _ArrayDisplay($array_gesamt_liste)

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

    ;leeres Array erstellen
    $array_gesamt = _ArrayCreate("")

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

    ;Dateien zum kopieren zusammentragen
    For $q = $start to $ende
    $anzahl = DirGetSize($Quell_Pf_[$q][0], 1)
    $anzahl_array = $anzahl[1]
    $ordner_aktuell = $Quell_Pf_[$q][0]
    _makecopylist($ordner_aktuell)
    $anzahl_gesamt += $anzahl_array

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

    ;die Dateien jedes zu kopierenden Ordners dem Gesamt-Array hinzufügen
    For $h = 0 to UBound($array_gesamt_liste)-1
    _ArrayAdd($array_gesamt, $array_gesamt_liste[$h])
    Next

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

    Next

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

    ;Die erste (leere) Linie des Gesamt-Array löschen
    _ArrayDelete($array_gesamt, 0)
    _ArrayDisplay($array_gesamt)

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

    EndFunc ;==>_gesamt_array_erstellen

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

    ;***********************************************************************
    ; Funktion einzelne Arrays mit allen zu kopierenden Dateien erstellen *
    ;***********************************************************************

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

    ;Funktion zum zusammentragen der Dateien
    Func _makecopylist($dir)
    $FileList = _FileListToArray($dir, "*", 0)
    If (Not IsArray($FileList)) And (@error = 1) Then SetError(-1)
    _ArrayDelete($FileList,0)

    $i = 0
    While ($i < UBound($FileList))
    If (FileGetAttrib($dir & '\' & $FileList[$i]) = "D") Then
    $tmp = _makecopylist($dir & '\' & $FileList[$i])
    $tmpdir = $FileList[$i] & '\'
    _ArrayDelete($FileList, $i)
    For $j = 0 To UBound($tmp) -1

    If IsArray($tmp) Then
    _ArrayInsert($FileList, $j + $i, $tmpdir & $tmp[$j])
    Else
    ; Fehler setzen oder MsgBox
    EndIf
    Next
    $i = $i + UBound($tmp) - 1
    EndIf
    $i=$i+1
    WEnd

    _ArrayDblDel($FileList)

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

    If $anzahl_array = UBound($FileList) Then
    $array_gesamt_liste = _ArrayCreate("")
    For $z = 0 to UBound($FileList)-1
    _ArrayInsert($array_gesamt_liste, $z, $dir & $FileList[$z])

    Next

    _ArrayDelete($array_gesamt_liste, UBound($FileList))
    ;~ _ArrayDisplay($array_gesamt_liste)
    Else
    Return $FileList
    EndIf

    EndFunc ;==>_makecopylist

    [/autoit]


    EDIT:
    so wie es aussieht hab ich eine andere Lösung gefunden:

    Hier meine Änderung in der while-Schleife

    Spoiler anzeigen
    [autoit]

    ...
    While ($i < UBound($FileList))
    If (FileGetAttrib($dir & '\' & $FileList[$i]) = "D") Then
    $tmp = _makecopylist($dir & '\' & $FileList[$i])
    $tmpdir = $FileList[$i] & '\'
    $dateien_anzahl = DirGetSize($dir & '\' & $FileList[$i], 1)
    $dateien_anzahl_array = $dateien_anzahl[1]
    _ArrayDelete($FileList, $i)
    If $dateien_anzahl_array > 0 Then
    For $j = 0 To UBound($tmp) -1
    _ArrayInsert($FileList, $j + $i, $tmpdir & $tmp[$j])
    Next
    EndIf
    $i = $i + UBound($tmp) - 1
    EndIf
    $i=$i+1
    WEnd
    ...

    [/autoit]

    Habe einfach abgefragt, ob der Ordner leer ist oder nicht :D

  • Alle Dateien auflisten - Fehler wenn Ordner leer

    • Tweaky
    • 18. Juni 2007 um 19:35

    Hi,
    ich hab ein Scritp erstellt, welches mir die Dateien von einem bestimmten Ordner auflistet.

    Dies funktioniert soweit.
    Wenn allerdings ein leerer Ordner existiert, kommt folgende Fehlermeldung

    Code
    V:\_AutoIt\Versuche aktuell\mit Anzeige kopieren6 kurz.au3 (108) : ==> Array variable has incorrect number of subscripts or subscript dimension range exceeded.: 
    _ArrayInsert($FileList, $j + $i, $tmpdir & $tmp[$j]) 
    _ArrayInsert($FileList, $j + $i, $tmpdir & ^ ERROR


    Spoiler anzeigen
    [autoit]

    #include<Date.au3>
    #include<Array.au3>
    #include<File.au3>
    #include<_ArrayDblDel.au3>

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

    ;Nummer des ersten zu kopierenden Ordners
    $start = 0

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

    ;Nummer des letzten zu kopierenden Ordners
    $ende = 0

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

    ;Nummer des letzten zu überspringenden Ordners
    $ende2 = 0

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

    ;~ Dim $dir[$ende+1]
    Dim $ordner[$ende+1]
    Dim $ausschliessen[$ende2+1]
    Dim $array_gesamt_liste, $anzahl, $anzahl_array, $array_gesamt, $anzahl_array2, $array_gesamt2, $array_gesamt_ok2, $anzahl2, $anzahl_gesamt, $merken_alt, $ziel, $ordner_Dateiname, $quelle, $zielordner, $dateiname
    Dim $Entscheidung
    Dim $Quell_Pf_[$ende+1][2] ; [n][0] = Pfad; [n][1] = gerundete Größe
    Dim $goend = 0

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

    ;Datumsoptionen
    $iWeekday = _DateToDayOfWeek(@YEAR, @MON, @MDAY)
    $sNewDate = _DateAdd('d', 0, _NowCalcDate())
    $sNewDate = StringReplace($sNewDate, "/", ".")

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

    ;~ ;Quell-Laufwerk
    $Quell_LW = "D:\"

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

    ;~ ;Quell-Ordner (ohne Laufwerksbuchstabe)
    $ordner[0] = "Video"

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

    ;~ ;Quell-Ordner zusammengesetzt
    $Quell_Pf_[0][0] = $Quell_LW & $ordner[0] & "\"

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

    ;~ ;Ziel-Laufwerk
    $Ziel_LW = "C:\"
    $Ziel_Pf = $Ziel_LW & "Sicherung Internet\" & $sNewDate & "\"

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

    ;folgende Ordner bei der Sicherung ausschließen
    $ausschliessen[0] = "D:\alt"

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

    _gesamt_array_erstellen()

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

    ;***********************************************************************
    ; Funktion komplettes Array mit allen zu kopierenden Dateien erstellen *
    ;***********************************************************************

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

    Func _gesamt_array_erstellen()
    ;~ _ArrayDisplay($array_gesamt_liste)

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

    ;leeres Array erstellen
    $array_gesamt = _ArrayCreate("")

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

    ;Dateien zum kopieren zusammentragen
    For $q = $start to $ende
    $anzahl = DirGetSize($Quell_Pf_[$q][0], 1)
    $anzahl_array = $anzahl[1]
    $ordner_aktuell = $Quell_Pf_[$q][0]
    _makecopylist($ordner_aktuell)
    $anzahl_gesamt += $anzahl_array

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

    ;die Dateien jedes zu kopierenden Ordners dem Gesamt-Array hinzufügen
    For $h = 0 to UBound($array_gesamt_liste)-1
    _ArrayAdd($array_gesamt, $array_gesamt_liste[$h])
    Next

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

    Next

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

    ;Die erste (leere) Linie des Gesamt-Array löschen
    _ArrayDelete($array_gesamt, 0)
    _ArrayDisplay($array_gesamt)

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

    EndFunc ;==>_gesamt_array_erstellen

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

    ;***********************************************************************
    ; Funktion einzelne Arrays mit allen zu kopierenden Dateien erstellen *
    ;***********************************************************************

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

    ;Funktion zum zusammentragen der Dateien
    Func _makecopylist($dir)
    $FileList = _FileListToArray($dir, "*", 0)
    If (Not IsArray($FileList)) And (@error = 1) Then SetError(-1)
    _ArrayDelete($FileList,0)

    $i = 0
    While ($i < UBound($FileList))
    If (FileGetAttrib($dir & '\' & $FileList[$i]) = "D") Then
    $tmp = _makecopylist($dir & '\' & $FileList[$i])
    $tmpdir = $FileList[$i] & '\'
    _ArrayDelete($FileList, $i)
    For $j = 0 To UBound($tmp) -1
    _ArrayInsert($FileList, $j + $i, $tmpdir & $tmp[$j])
    Next
    $i = $i + UBound($tmp) - 1
    EndIf
    $i=$i+1
    WEnd

    _ArrayDblDel($FileList)

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

    If $anzahl_array = UBound($FileList) Then
    $array_gesamt_liste = _ArrayCreate("")
    For $z = 0 to UBound($FileList)-1
    _ArrayInsert($array_gesamt_liste, $z, $dir & $FileList[$z])

    Next

    _ArrayDelete($array_gesamt_liste, UBound($FileList))
    ;~ _ArrayDisplay($array_gesamt_liste)
    Else
    Return $FileList
    EndIf

    EndFunc ;==>_makecopylist

    [/autoit]
  • OrganizeIncludes

    • Tweaky
    • 5. Juni 2007 um 21:36

    hab gerade mal auf die neuest Scite Version upgedatet.
    Leider sind die Einstellungen in der au3.properties wieder weg.

    Da wäre es am besten, wenn ich ein AutoItScript schreibe, der mit deinen Eintrag automatisch an die Datei ranhängt, oder geht dies auch anders?

  • OrganizeIncludes

    • Tweaky
    • 5. Juni 2007 um 21:31

    Ups, da hab ich wohl in der Eile () vergessen.
    Naja nun funktioniert
    Danke :D

  • OrganizeIncludes

    • Tweaky
    • 5. Juni 2007 um 12:13

    sodele,
    hab deine neue au3-Datei in den Ordner kopiert, die au3.properties geändert und die inlcludes.ini geändert

    Wenn ich es mit diesem Script probiere

    Spoiler anzeigen
    [autoit]

    $gui=GUICreate("Background", 800, 300)
    ; background picture
    $background = GUICtrlCreatePic ("demo-bg.jpg", 0, 0, 800, 300)
    GUISetState(@SW_SHOW)

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

    ; transparent child window
    $pic=GUICreate("", 14, 80, 0, 0,$WS_POPUP,$WS_EX_LAYERED+$WS_EX_MDICHILD,$gui)
    ; transparent pic
    $basti_stay = GUICtrlCreatePic ("l_st.gif", 0, 0, 14, 80)
    GUISetState(@SW_SHOW)

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

    MsgBox(0,"",_NowCalcDate)

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

    do
    $msg = GUIGetMsg()

    until $msg = $GUI_EVENT_CLOSE

    [/autoit]


    kommt zuerst die Meldung "No Files\Folders Found."

    Wenn ich es dann nochmal starte kommt deine GUI-Oberfläche.

    Es wird mir nur #include<GUIConstants.au3> anzeigt (mit Haken).

    Jedoch fehlt #include <Date.au3>.

    Wenn ich es nochmal starte wird mir #include<GUIConstants.au3> anzeigt (ohne Haken).

    Wenn ich den Haken setze kann ich den include nochmal einfügen.


    Wie ist es, wenn ich Scite update, muß ich dann die Änderungen in der au3.properties nochmal machen?

  • Der Neue

    • Tweaky
    • 4. Juni 2007 um 23:09

    auch von mir alles Gute zum 2000.

    Mach weiter so Cheffe :rock:

  • OrganizeIncludes

    • Tweaky
    • 4. Juni 2007 um 21:08

    Hier sind die Links von BugFix vom Board

    _ArrayDisplay2D.au3
    _ArrayDisplay2D

    _ArraySort_2ary.au3
    Array 2-stufig sortieren

  • OrganizeIncludes

    • Tweaky
    • 4. Juni 2007 um 20:46

    Hi,
    so nun funktionierts soweit.

    #include <_ArrayDisplay2D.au3>
    #include <_ArraySort_2ary.au3>
    hab ich in den include-Ordner kopiert.

    Ich nutze nur die normale Version, keine Beta.

    Wenn ich allerdings dieses Beispiel aus der Hilfe als Test nehme,

    [autoit]

    $gui=GUICreate("Background", 800, 300)
    ; background picture
    $background = GUICtrlCreatePic ("demo-bg.jpg", 0, 0, 800, 300)
    GUISetState(@SW_SHOW)

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

    ; transparent child window
    $pic=GUICreate("", 14, 80, 0, 0,$WS_POPUP,$WS_EX_LAYERED+$WS_EX_MDICHILD,$gui)
    ; transparent pic
    $basti_stay = GUICtrlCreatePic ("l_st.gif", 0, 0, 14, 80)
    GUISetState(@SW_SHOW)

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

    do
    $msg = GUIGetMsg()

    until $msg = $GUI_EVENT_CLOSE

    [/autoit]


    werden mir folgende includes angezeigt:

    [autoit]

    #include<_ArrayDisplay2D.au3>
    #include<_ArraySort_2ary.au3>
    #include<GUIConstants.au3>

    [/autoit]

    aber warum?

    Die einzige Verbesserung, die ich hätte, wäre, dass man die includes nicht doppelt einfügen kann. ;)

  • OrganizeIncludes

    • Tweaky
    • 4. Juni 2007 um 07:11

    Hi,
    wenigstens noch einer mit dem gleichen Problem ;)

    Ja bei der "au3.properties" habe ich genau die Zeilen von th.meger an Ende hinzugefügt.
    Es wird immer nur "#include <GUIConstants.au3>" angezeigt sonst kein include ?(

  • OrganizeIncludes

    • Tweaky
    • 2. Juni 2007 um 23:56

    Hi,
    bekomme dein Script gestartet, jedoch kommt gleich die Meldung

    "No Files\Folders Found."

    Habe dann in dieser Funktion in der ersten Zeile $betaincludesPath in $includesPath geändert.

    [autoit]

    Func _prepareOrganizeIncludes()
    $FileList = _FileListToArray($includesPath, '*.au3', 1)
    If @error = 1 Then
    MsgBox(0, '', 'No Files\Folders Found.')
    Exit
    EndIf
    If FileExists($includesIni) Then FileDelete($includesIni)
    IniWrite($includesIni, 'Version', 'Beta', $betaInstallVersion)
    IniWrite($includesIni, 'Version', 'Normal', $InstallVersion)
    For $i = 1 To UBound($FileList) - 1
    $functions = StringRegExp(FileRead(FileOpen($includesPath & $FileList[$i], 0)), '(?<=Func )[0-9a-zA-Z_]+[ ]{0,}(?=\()', 3)
    If IsArray($functions) Then IniWrite($includesIni, 'Functions', $FileList[$i], _ArrayToString($functions, ';'))
    Next
    IniWrite($includesIni, 'Functions', 'GUIConstants.au3', 'GUICreate;GUIGetMsg')
    EndFunc ;==>_prepareOrganizeIncludes

    [/autoit]

    Dann startet es bei mir.
    Jedoch wird mir nur

    [autoit]

    #include <GUIConstants.au3>

    [/autoit]

    angezeigt.

    Allerdings benötige ich auch noch

    [autoit]

    #include <Array.au3>
    #Include <File.au3>
    #Include <date.au3>
    #include <_ArrayDisplay2D.au3>
    #include <_ArraySort_2ary.au3>
    #Include <String.au3>

    [/autoit]

    Wenn ich einen include-Befehl schon im Script stehen habe und ich dein Script nochmal starte, wird mir der Include-Befehl nochmal angezeigt.
    Also könnte ich ihn mehrfach einfügen.

    PS: Ich nutze AutOit 3.2.4.9 und Scite vom 22.05.2007

  • Tool zum Updates installieren - Ein paar Fragen

    • Tweaky
    • 30. Mai 2007 um 00:59

    Ups, jetzt wo du es sagst,
    hatte das $i in

    [autoit]

    _Reg1($i)

    [/autoit]

    übersehen.

    Trotzdem Danke 8)
    Es läuft ja nun :rock:

    EDIT:
    Habs nun an einer anderen Stelle gebraucht, aber es klappt nicht so ganz ?(

    Der Wert von $datum_datum[$i](0] soll an die Func _start1() übergeben werden

    [autoit]

    $anzahl = DirGetSize($durchgang, 3)

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

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_datum = 0
    Dim $array_datum[$anzahl[1] + 1][2]
    Dim $array = 0
    Dim $array[100]
    $array = _FileListToArray($durchgang, "*", 1)
    ;~ _ArrayDisplay($array)

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

    ;Array ($array_quelle) erzeugen (Dateinamen von $Filelist und Datum)
    For $i = 1 to UBound($array)-1
    $array_datum[$i][0] = $array[$i]
    $dateidatum = FileGetTime($durchgang & $array_datum[$i][0], 0, 1)
    $array_datum[$i][1] = $dateidatum
    Next

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

    _ArraySort_2ary($array_datum, 1 , 0, False)
    ;~ _ArrayDisplay2D($array_datum, $durchgang)

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

    $startdatum = UBound($array)
    For $i = 1 to UBound($array)-1
    If $array_datum[$i][1] >= $datum Then
    $startdatum = $i
    ExitLoop
    EndIf
    Next

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

    For $i = $startdatum to UBound($array)-1
    GUICtrlSetData($fortschritt," ")
    GUICtrlSetData($fortschritt, $speicher & " / " & $updates_gesamt)

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

    $kb = StringMid($array_datum[$i][0], StringInStr($array_datum[$i][0], "KB"), 8)
    $time = FileGetTime($durchgang & $array_datum[$i][0], 0, 0)
    $time2 = $time[2] & "." & $time[1] & "." & $time[0]

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

    Select
    Case StringInStr($array_datum[$i][0], "Media-") = "8" ;WindowsMedia-KB911564-x86-DEU.exe
    _Reg1()
    If $installiert = 0 Then
    _start1($array_datum)
    EndIf

    [/autoit][autoit]

    Func _start1($xxx)
    msgbox(0,"", $xxx)
    ;~ msgbox(0,"", $array_datum[$i][0] & " - " & $test)
    ;~ ShellExecuteWait($durchgang & $array_datum[$i][0], "/passive /norestart")
    GUICtrlSetData($item, "|||wurde installiert")
    GUICtrlSetColor(-1,0x000000)
    EndFunc ;==>_start1()

    [/autoit]

    Jedoch kommt die Fehlermeldung
    "ERROR: _start1() called by a previous line with 0 arg(s). Min = 1. First previous line calling this Func is 263."

    Why?

    Oder kann ich die Variable auch direkt verwenden ohne zu übergeben ?(

    Danke :D

    EDIT2: Hat sich schon wieder erledigt :D
    Ich hatte noch andere Aufrufe der _start1() drinnen, in denen ich den Parameter nicht übergeben hatte :tongue:

  • Tool zum Updates installieren - Ein paar Fragen

    • Tweaky
    • 29. Mai 2007 um 22:12

    Bernd
    Func durchläuft die erste Schlefe (1)
    In dieser Schleife wird eine andere Schleife aufgerufen und diese 3x durchlaufen (1) (2) (3)

    Func durchläuft die erste Schlefe (2)
    In dieser Schleife wird eine andere Schleife aufgerufen und diese 3x durchlaufen (4) (5) (6)

    Func durchläuft die erste Schlefe (3)
    In dieser Schleife wird eine andere Schleife aufgerufen und diese 3x durchlaufen (7) ( 8 ) (9)

    also 9x statt 3x

    oder liege ich da voll daneben ?( ;)


    @th.meger
    würde zwar dann laufen, jedoch benötige ich genau die $i von oben.


    EDIT:
    hab die Lösung
    hab $i an $xxx in der 1. Func übergeben und in der 2. Func wieder $xxx an $i übergeben. Hoffe es klappt nun

    [autoit]

    Case StringLen($array_datum[$i][0]) = 30
    $xxx = $i
    _Reg1()
    If $installiert = 0 Then ;>>>>>>>>>>>>>>>>>>>>>>>>>>>> 0
    _start1()
    EndIf

    [/autoit]


    [autoit]

    Func _Reg1()
    $i = $xxx
    $kb = StringMid($array_datum[$i][0], 11, 8)
    $reg = RegRead($schluessel1 & "\" & $kb,"Installed")
    If $reg = "1" Then
    $installiert = 1
    GUICtrlCreateListViewItem($kb & "|bereits installiert", $ListView)
    Else
    $installiert = 0
    GUICtrlCreateListViewItem($kb & "|wird installiert", $ListView)
    EndIf
    ;~ Next
    EndFunc

    [/autoit]
  • Tool zum Updates installieren - Ein paar Fragen

    • Tweaky
    • 29. Mai 2007 um 21:50

    BugFix
    ja dies hatte ich vorhin mal, nur ergibt sich da ein Problem.
    Bsp. es sollen 3 Dateien verarbeitet werden

    die Funktion _button() wird aufgerufen, dann werden Teile davon 3x aufgeführt.

    Da nun die Func _Reg1() aus dieser Func _button() aufgerufen wird, wird Func_Reg1() insgesamt 9x aufgerufen.

    Dies ist zu viel

  • Tool zum Updates installieren - Ein paar Fragen

    • Tweaky
    • 29. Mai 2007 um 21:29

    hm,
    aber $i ändert sich doch laufend.
    Es soll immer das aktuelle $i von oben verwendet werden

  • Tool zum Updates installieren - Ein paar Fragen

    • Tweaky
    • 29. Mai 2007 um 21:21

    wie meinst du als Parameter ?(

  • Tool zum Updates installieren - Ein paar Fragen

    • Tweaky
    • 29. Mai 2007 um 21:14

    Hi,

    ich habe $i definiert, nun soll dies auch in der Func von Reg1() erscheinen. Jedoch ist es leer. Warum?

    Spoiler anzeigen
    [autoit]

    #include <GUIConstants.au3>
    #include <Array.au3>
    #Include <File.au3>
    #include <_ArrayDisplay2D.au3>
    #include <_ArraySort_2ary.au3>

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

    Dim $schluessel1, $installiert, $durchgang, $kb, $array
    Dim $gang[4]
    Dim $array_datum[100][1]
    Global $i

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

    $Form1 = GUICreate("AForm1", 633, 447, 193, 115)
    GUIStartGroup()
    $PC_Art_Desktop = GUICtrlCreateRadio("ARadio1", 72, 40, 49, 41)
    $PC_Art_Laptop = GUICtrlCreateRadio("ARadio2", 72, 88, 57, 33)
    GUIStartGroup()
    $Win_XP_Pro = GUICtrlCreateRadio("ARadio3", 176, 56, 81, 25)
    $Win_XP_MCE = GUICtrlCreateRadio("ARadio4", 176, 88, 97, 33)
    GUIStartGroup()
    $IE_6 = GUICtrlCreateRadio("ARadio5", 312, 48, 89, 25)
    $IE_7 = GUICtrlCreateRadio("ARadio6", 312, 96, 97, 25)

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

    $Start = GUICtrlCreateButton("AButton1", 64, 136, 97, 33, 0)
    $Beenden = GUICtrlCreateButton("AButton2", 192, 136, 121, 33, 0)

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

    $PC_Art = GUICtrlCreateLabel("ALabel1", 88, 16, 43, 17)
    $Win_XP = GUICtrlCreateLabel("ALabel2", 184, 16, 43, 17)
    $IE = GUICtrlCreateLabel("ALabel3", 320, 16, 43, 17)

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

    $ListView = GUICtrlCreateListView("Datei|Status", 440, 16, 169, 409)

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

    ;Pfade
    $pfad_PC_Art_Desktop = "V:\Update-Pack\Desktop\"
    $pfad_PC_Art_Laptop = "V:\Update-Pack\Laptop\"
    $pfad_Win_XP_Pro = "V:\Update-Pack\XP Pro\"
    $pfad_Win_XP_MCE = "V:\Update-Pack\XP MCE\"
    $pfad_IE_6 = "V:\Update-Pack\IE 6\"
    $pfad_IE_7 = "V:\Update-Pack\IE 7\"

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

    $schluessel1 = "HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Hotfix"

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

    GUISetState(@SW_SHOW)

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

    ;------------------------------------------------------------------------------------------------------------------------------------
    Func _button()
    msgbox(0, "", $gang[1] & " " & $gang[2] & " " & $gang[3])

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

    For $x = 1 to 3
    $durchgang = $gang[$x]

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

    $anzahl = DirGetSize($durchgang, 3)

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

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_datum = 0
    Dim $array_datum[$anzahl[1] + 1][2]
    $array = _FileListToArray($durchgang, "*", 1)

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

    ;Array ($array_quelle) erzeugen (Dateinamen von $Filelist und Datum)
    For $i = 1 to UBound($array)-1
    $array_datum[$i][0] = $array[$i]
    $dateidatum = FileGetTime($durchgang & $array_datum[$i][0], 0, 1)
    $array_datum[$i][1] = $dateidatum
    Next

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

    _ArraySort_2ary($array_datum, 1 , 0, False)
    ;~ _ArrayDisplay2D($array_datum, $durchgang)

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

    For $i = 1 to UBound($array)-1
    ;~ msgbox(0,"",StringLen($array_datum[$i][0]))
    Select
    Case StringLen($array_datum[$i][0]) = 30
    ;~ Msgbox(0,"",$i)
    _Reg1()
    If $installiert = 0 Then ;>>>>>>>>>>>>>>>>>>>>>>>>>>>> 0
    _start1()
    EndIf
    ;~
    ;~ Case StringInStr($array_datum[$i][0], "-v") > 0
    ;~ Msgbox(0,"","2")
    ;~ _Reg2()
    ;~ _start1()

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

    ;~ Case StringInStr($array_datum[$i][0], "WindowsMedia6") > 0
    ;~ Msgbox(0,"","4")
    ;~ _Reg4()
    ;~ _start1()
    ;~
    ;~ Case StringInStr($array_datum[$i][0], "IE7-") > 0
    ;~ Msgbox(0,"","5")
    ;~ _Reg5()
    ;~ _start1()
    ;~
    ;~ Case StringInStr($array_datum[$i][0], "XML-") > 0
    ;~ Msgbox(0,"","6")
    ;~ _Reg6()
    ;~ _start1()

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

    ;~ Case StringInStr($array_datum[$i][0], "WindowsMedia9") > 0
    ;~ Msgbox(0,"","7")
    ;~ _Reg7()
    ;~ _start1()

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

    EndSelect
    ;~ Msgbox(0,"","???")
    Next
    MsgBox(0,"", $i)
    Next

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

    EndFunc

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

    ;------------------------------------------------------------------------------------------------------------------------------------

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

    Func _Reg1()
    ;~ For $i = 1 to UBound($array)-1
    ;~ $x = $i
    MsgBox(0,"", $i)
    $kb = StringMid($array_datum[$i][0], 11, 8)
    ;~ msgbox(0,"", $i)
    $reg = RegRead($schluessel1 & "\" & $kb,"Installed")
    If $reg = "1" Then
    $installiert = 1
    ;~ Msgbox(0,$kb,"1")
    GUICtrlCreateListViewItem($kb & "|bereits installiert", $ListView)
    Else
    $installiert = 0
    ;~ Msgbox(0,$kb,"0")
    GUICtrlCreateListViewItem($kb & "|wird installiert", $ListView)
    EndIf
    ;~ Next
    EndFunc

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

    Func _start1()
    ;~ For $i = 1 to UBound($array)-1
    ;~ ShellExecuteWait($durchgang & $array_datum[$i][0], "/passive /norestart")
    ;~ msgbox(0,"", $array_datum[$i][0])
    ;~ Next
    EndFunc

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

    While 1
    $msg = GUIGetMsg()
    Select
    Case $msg = $Beenden
    Exit

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

    Case $msg = $GUI_EVENT_CLOSE
    Exit

    Case $msg = $Start
    _button()

    Case $msg = $PC_Art_Desktop
    $gang[1] = $pfad_PC_Art_Desktop

    Case $msg = $PC_Art_Laptop
    $gang[1] = $pfad_PC_Art_Laptop

    Case $msg = $Win_XP_Pro
    $gang[2] = $pfad_Win_XP_Pro

    Case $msg = $Win_XP_MCE
    $gang[2] = $pfad_Win_XP_MCE

    Case $msg = $IE_6
    $gang[3] = $pfad_IE_6

    Case $msg = $IE_7
    $gang[3] = $pfad_IE_7
    EndSelect
    WEnd

    [/autoit]
  • Dateien des Explorers in eine ListView - kleinere Probleme

    • Tweaky
    • 28. Mai 2007 um 13:36

    Hi Bernd :musik2:
    habs schnell getestet,
    ist genauso

    Gibts vielleicht ne Funktion, wo man den Explorer direkt in eine GUI einbinden kann?
    Würde gerne noch die jeweiligen Dateisymbole wie im Explorer angezeigt bekommen

    EDIT: Bin ein bisschen weiter gekommen, wobei sich obiges Problem nicht gelöst hat.

    Will nun das ganze sortieren, dass die Ordner oben stehen und dann darunter die Dateien.

    Spoiler anzeigen
    [autoit]

    #include <Array.au3>
    #Include <GUIConstants.au3>
    #include <GuiTreeView.au3>
    #Include <File.au3>
    #include <GuiListView.au3>
    #include <_ArrayDisplay2D.au3>
    #include <_ArraySort_2ary2.au3>

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

    Global $Tree
    Global $SubTree
    Global $merken = "\"
    Global $merken2 = "\"

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

    Dim $time, $time2, $quellpfad, $quellpfad2, $merk
    Dim $h_item

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

    ;GUI erstellen
    $Form1 = GUICreate("Browse", 800, 800, -1, -1, -1)
    $TreeView = GUICtrlCreateTreeView(8, 8, 225, 273, BitOR($WS_BORDER,$TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS))
    GUICtrlSetImage(-1, "shell32.dll", 3, 4)
    GUICtrlSetImage(-1, "shell32.dll", 4, 2)
    $ListView = GUICtrlCreateListView("Datei|Größe|Art|Datum", 300, 10, 500, 250, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL, $LVS_SORTASCENDING))

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

    $TreeView2 = GUICtrlCreateTreeView(8, 408, 225, 273, BitOR($WS_BORDER,$TVS_HASBUTTONS, $TVS_HASLINES, $TVS_LINESATROOT, $TVS_DISABLEDRAGDROP, $TVS_SHOWSELALWAYS))
    GUICtrlSetImage(-1, "shell32.dll", 3, 4)
    GUICtrlSetImage(-1, "shell32.dll", 4, 2)
    $ListView2 = GUICtrlCreateListView("Datei|Größe|Datum", 300, 410, 500, 250, BitOR($LVS_SHOWSELALWAYS, $LVS_SINGLESEL, $LVS_SORTASCENDING, $WS_EX_ACCEPTFILES ))
    ;~ GUICtrlSetState(-1,$GUI_DROPACCEPTED) ; to allow drag and dropping
    $ok = GUICtrlCreateButton(">>>>>>>>>>>> &Weiter >>>>>>>>>>>>", 8, 288, 227, 25)
    $test = GUICtrlCreateButton("kopieren", 308, 300, 227, 25)
    $verschieben = GUICtrlCreateButton("verschieben", 308, 700, 227, 25)

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

    ;~ $input1=GUICtrlCreateInput("",20,350, 150)
    ;~ GUICtrlSetState(-1,$GUI_DROPACCEPTED) ; to allow drag and dropping

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

    ;Spaltenbreite für die beiden Spalten festlegen
    _GUICtrlListViewSetColumnWidth($listview, 0, 200)
    _GUICtrlListViewSetColumnWidth($listview, 1, 50)
    _GUICtrlListViewSetColumnWidth($listview, 2, 50)
    _GUICtrlListViewJustifyColumn ($listview,1,1)

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

    _GUICtrlListViewSetColumnWidth($listview2, 0, 200)
    _GUICtrlListViewSetColumnWidth($listview2, 1, 50)
    _GUICtrlListViewSetColumnWidth($listview2, 2, 50)
    _GUICtrlListViewJustifyColumn ($listview2,1,1)
    GUISetState(@SW_SHOW)

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

    ;Laufwerk
    $HDDrives = "V:"
    Search($HDDrives , "*.*")
    $var = IniReadSection("Files.ini", $HDDrives & "\")
    For $h = 1 To $var[0][0]
    $IniRead = IniRead("Files.ini", $HDDrives & "\", $h, "NotFound")
    _Next($IniRead, "*.*", $h)
    Next

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

    ;~ _GUICtrlTreeViewSetState($treeview, $h_item, $TVIS_DROPHILITED)
    ;~ _GUICtrlTreeViewSetState($treeview, $h_item, $TVIS_SELECTED)

    $HDDrives2 = "D:"
    Search2($HDDrives2 , "*.*")
    $var2 = IniReadSection("Files.ini", $HDDrives2 & "\")
    For $h2 = 1 To $var2[0][0]
    $IniRead2 = IniRead("Files.ini", $HDDrives2 & "\", $h2, "NotFound")
    _Next($IniRead2, "*.*", $h2)
    Next
    ;~ $merk = 0

    ;~ _GUICtrlTreeViewSetState($treeview2, $h_item, $TVIS_SELECTED)
    ;~ _GUICtrlTreeViewSetState($treeview, $h_item, $TVIS_DROPHILITED)

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

    ;~ $quellpfad2 = $HDDrives2 & "\"

    While 1
    $msg = GUIGetMsg()
    Select

    Case $msg = $ok
    ;~ Run("explorer.exe "& _GUICtrlTreeViewGetTree($TreeView,"\"))

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

    Case $msg = $GUI_EVENT_CLOSE
    Exit

    Case $msg = $test
    $item = _GUICtrlListViewGetItemTextArray($listview)
    If (Not IsArray($Item)) Then
    msgbox(0,"Ordner", "FEHLER")
    Else
    msgbox(0,"", $quellpfad & $item[1] & " " & "D:\" & $item[1])
    FileCopy($quellpfad & $item[1], "D:\" & $item[1])
    EndIf

    Case $msg = $verschieben
    $item = _GUICtrlListViewGetItemTextArray($listview)
    If (Not IsArray($Item)) Then
    msgbox(0,"Ordner", "FEHLER")
    Else
    msgbox(0,"", $quellpfad & $item[1] & " " & $quellpfad2 & $item[1])
    FileMove($quellpfad & $item[1], $quellpfad2 & $item[1])
    _aktualisieren()
    _aktualisieren2()
    EndIf


    EndSelect
    _check()
    _check2()
    WEnd



    Func _check()
    $quellpfad = _GUICtrlTreeViewGetTree($treeview, "\") & "\"
    If $merken <> $quellpfad Then
    _aktualisieren()
    $merken = $quellpfad
    Else
    EndIf
    EndFunc ;==>_check



    Func _aktualisieren()
    _GUICTRLListViewDeleteAllItems($listview)
    ;~ If $merk = 0 Then
    ;~ $quellpfad ="D:\"
    ;~ $merk = 1
    ;~ Else
    $quellpfad = _GUICtrlTreeViewGetTree($treeview, "\") & "\"
    ;~ EndIF
    ;~ $quellpfad ="D:\"
    ;Größe des Arrays anhand von vorhandenen Dateien einstellen
    $anzahl = DirGetSize($quellpfad, 3)

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

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_quelle = 0
    Dim $array_quelle[$anzahl[1] + $anzahl[2] + 1][4]
    $array = _FileListToArray($quellpfad, "*", 0)
    ;~ _ArrayDisplay($array)
    ;~ msgbox(0,"",$array[1])

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

    ;Array ($array_quelle) erzeugen (Dateinamen von $Filelist und Datum)
    For $i = 1 to UBound($array)-1
    $array_quelle[$i][0] = $array[$i]

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

    $xxx = DirGetSize($quellpfad & $array_quelle[$i][0], 1)

    If @error = 1 Then
    $yyy = FileGetSize($quellpfad & $array_quelle[$i][0])
    $array_quelle[$i][1] = $yyy
    $array_quelle[$i][2] = "Datei"
    Else
    ;~ $array_quelle[$i][1] = $xxx[0]
    $array_quelle[$i][1] = ""
    $array_quelle[$i][2] = "Ordner"
    EndIf


    $time = FileGetTime($quellpfad & $array[$i], 0)
    $array_quelle[$i][3] = $time[2] & "." & $time[1] & "." & $time[0] & " " & $time[3] & ":" & $time[4] & ":" & $time[5]
    ;~ _ArrayDisplay2D($array_quelle,"$array_quelle")
    Next

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

    ;~ _ArraySort_2ary($array_quelle,2,0)
    _ArrayDisplay2D($array_quelle,"$array_quelle")

    ;Einträge für ListView vornehmen (Datei und Datum)
    For $i = 1 To UBound($array) - 1

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

    $size = DirGetSize($quellpfad & $array[$i], 1)

    If @error = 1 Then
    $yyy = FileGetSize($quellpfad & $array[$i])
    $groesse = Round(($yyy+1024) / 1024, 0)
    Else
    ;~ $groesse = Round(($size[0]) / 1024, 0)
    $groesse = ""
    EndIf

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

    $time = FileGetTime($quellpfad & $array[$i], 0)
    $datum = $time[2] & "." & $time[1] & "." & $time[0] & " " & $time[3] & ":" & $time[4] & ":" & $time[5]
    GUICtrlCreateListViewItem($array[$i] & "|" & $groesse & " KB" & "|" & $datum, $listview)
    ;~ GUICtrlCreateListViewItem($array_quelle[$i][0] & "|" & $array_quelle[$i][1] & " KB" & "|" & $array_quelle[$i][2], $listview)
    Next

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

    ;Einträge vom ListView sortieren
    ;~ Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($listview) ];$B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING (wenn andersrum sortieren, dann deaktivieren)

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

    EndFunc

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


    ;Functions
    ;///////////////////////////////////////////
    Func Search($SearchPath, $FileType)
    $Item1 = GUICtrlCreateTreeViewItem(StringUpper($SearchPath), $TreeView)
    GUICtrlSetImage(-1, "shell32.dll", 8)
    $SearchPath &= "\"
    $Search = FileFindFirstFile($SearchPath & $FileType)
    If $Search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    $Count = 1
    Dim $Tree[99999]
    While 1
    $File = FileFindNextFile($Search)
    If @error Then ExitLoop

    $Attrib = FileGetAttrib($SearchPath & $File)
    If StringInStr($Attrib, "D") Then
    $Tree[$Count] = GUICtrlCreateTreeViewItem($File, $Item1)
    IniWrite("Files.ini", $SearchPath, $Count, $SearchPath & $File & "\")
    $Count = $Count + 1
    EndIf
    WEnd
    FileClose($Search)
    EndFunc ;==>Search


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

    ;--------------------------------------------------------------------------------------------------------------------------------------------------------------




    Func _check2()
    $quellpfad2 = _GUICtrlTreeViewGetTree($treeview2, "\") & "\"
    If $merken2 <> $quellpfad2 Then
    _aktualisieren2()
    $merken2 = $quellpfad2
    Else
    EndIf
    EndFunc ;==>_check



    Func _aktualisieren2()
    _GUICTRLListViewDeleteAllItems($listview2)
    $quellpfad2 = _GUICtrlTreeViewGetTree($treeview2, "\") & "\"

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

    ;Größe des Arrays anhand von vorhandenen Dateien einstellen
    $anzahl2 = DirGetSize($quellpfad2, 3)

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

    ;Array ($Filelist) erzeugen (nur Dateinamen)
    Dim $array_quelle2 = 0
    Dim $array_quelle2[$anzahl2[1] + 1][3]
    $array2 = _FileListToArray($quellpfad2, "*", 1)

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

    ;Array ($array_quelle) erzeugen (Dateinamen von $Filelist und Datum)
    For $i = 1 to UBound($array2)-1
    $array_quelle2[$i][0] = $array2[$i]
    $array_quelle2[$i][1] = FileGetSize($quellpfad2 & $array_quelle2[$i][0])
    $time2 = FileGetTime($quellpfad2 & $array2[$i], 0)
    $array_quelle2[$i][2] = $time2[2] & "." & $time2[1] & "." & $time2[0] & " " & $time2[3] & ":" & $time2[4] & ":" & $time2[5]

    Next

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

    _ArraySort_2ary($array_quelle2,0,0)
    ;~ _ArrayDisplay2D($array_quelle,"$array_quelle")

    ;Einträge für ListView vornehmen (Datei und Datum)
    For $i = 1 To UBound($array2) - 1
    $time2 = FileGetTime($quellpfad2 & $array2[$i], 0)
    $size2 = FileGetSize($quellpfad2 & $array2[$i])
    $groesse2 = Round(($size2+1024) / 1024, 0)
    $time2 = FileGetTime($quellpfad2 & $array2[$i], 0)
    $datum2 = $time2[2] & "." & $time2[1] & "." & $time2[0] & " " & $time2[3] & ":" & $time2[4] & ":" & $time2[5]
    GUICtrlCreateListViewItem($array2[$i] & "|" & $groesse2 & " KB" & "|" & $datum2, $listview2)
    Next

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

    ;Einträge vom ListView sortieren
    ;~ Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($listview) ];$B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING
    ;~ _GUICtrlListViewSort($listview, $B_DESCENDING, 0); $B_DESCENDING (wenn andersrum sortieren, dann deaktivieren)

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

    EndFunc

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






    ;Functions
    ;///////////////////////////////////////////
    Func Search2($SearchPath, $FileType)
    $Item1 = GUICtrlCreateTreeViewItem(StringUpper($SearchPath), $TreeView2)
    GUICtrlSetImage(-1, "shell32.dll", 8)
    $SearchPath &= "\"
    $Search = FileFindFirstFile($SearchPath & $FileType)
    If $Search = -1 Then
    MsgBox(0, "Error", "No files/directories matched the search pattern")
    Exit
    EndIf

    $Count = 1
    Dim $Tree[99999]
    While 1
    $File = FileFindNextFile($Search)
    If @error Then ExitLoop

    $Attrib = FileGetAttrib($SearchPath & $File)
    If StringInStr($Attrib, "D") Then
    $Tree[$Count] = GUICtrlCreateTreeViewItem($File, $Item1)
    IniWrite("Files.ini", $SearchPath, $Count, $SearchPath & $File & "\")
    $Count = $Count + 1
    EndIf
    WEnd
    FileClose($Search)
    EndFunc ;==>Search









    ;--------------------------------------------------------------------------------------------------------------------------------------------------------------

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





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



    Func _Next($SearchPath, $FileType, $Number)
    $Search1 = FileFindFirstFile($SearchPath & $FileType)
    If $Search1 = -1 Then
    Else
    $Count = 1
    Dim $SubTree[99999]
    While 1
    $NextFile = FileFindNextFile($Search1)
    If @error Then ExitLoop

    $Attrib = FileGetAttrib($SearchPath & $NextFile)
    If $Attrib = "D" Then;StringInStr($Attrib,"D") Then
    If $NextFile = "." Or $NextFile = ".." Then
    Else
    $FBuffer = $SearchPath & $NextFile & "\"
    $SubTree[$Count] = GUICtrlCreateTreeViewItem($NextFile, $Tree[$Number])

    $Search2 = FileFindFirstFile($FBuffer & "*.*")
    If $Search2 = -1 Then
    ;~ msgbox(0,"","Ingen mapper")
    Else
    $Count1 = 1
    While 1
    $NextFile2 = FileFindNextFile($Search2)
    If @error Then ExitLoop
    $Attrib = FileGetAttrib($FBuffer & $NextFile2)
    If $Attrib = "D" Then;StringInStr($Attrib,"D") Then
    If $NextFile2 = "." Or $NextFile2 = ".." Then
    Else
    GUICtrlCreateTreeViewItem($NextFile2, $SubTree[$Count])
    $Count1 = $Count1 + 1
    EndIf
    EndIf
    WEnd
    FileClose($Search2)
    EndIf
    ;msgbox(0,"","Stop " & $Count)
    $Count = $Count + 1
    EndIf
    EndIf
    WEnd
    FileClose($Search1)
    EndIf
    EndFunc ;==>_Next

    [/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™