Hi,
es wird ein ListView erstellt.
Nach dem erstellen möchte ich bestimmte Zeilen mit einer Farbe einfärben. (je nachdem wie das Dateidatum ist, dies weiß ich wie es geht ;-))
Leider schaffe ich es nur das komplette ListView einzufärben (Zeile 183)
Spoiler anzeigen
;au3-Scripte, Bilder und Icons werden direkt in die exe-Datei übernommen und später beim ausführen in den @TempDir entpackt
#include<Array.au3>
#include<ArrayMore.au3>
#include<File.au3>
#include<GUIConstants.au3>
#include<GuiListView.au3>
Dim $Fehler1, $Fehler2, $Fehler3, $Quellordner, $Zielordner, $zielordner_korrekt, $quellordner_korrekt, $pfad_bilder_korrekt, $klappliste, $beenden2, $GUI2, $array_quelle, $pfad, $Pfad_ohne, $listview2, $listview, $fehler_zu, $format, $OK, $fehler, $foto_anfang, $Klappen2
Dim $farbig, $datum_als_zahl
;log
$log = @ScriptDir & "\" & "datum.txt"
;Standardpfad hier auswählen
$Standard_Quelle = "W:\DCIM\" ;Quellpfad
;Klappliste umzubenennender Teil des Dateinamens eines Fotos
$Klapp_um1 = "IMG" ;1. Eintrag
$Klapp_um2 = "DSC" ;2. Eintrag
$Klapp_umS = $Klapp_um1 ;Standard-Eintrag
;Klappliste für das Umbenennen der Dateien
$Klapp1 = "XY" ;1. Eintrag
$Klapp2 = "TR" ;2. Eintrag
$KlappS = $Klapp1 ;Standard-Eintrag
;------------------------------------------------------------------------------------------------
;Erkennung der Fotos und Videos
$foto_typ = "JPG" ;Quellfotos Typ "JPG"
$video_anfang = "MVI" ;Quellvideos "MVI"
$video_typ1 = "AVI" ;Quellvideos Typ "AVI"
$video_typ2 = "THM" ;Quellvideos Typ "THM"
;------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit];------------------------
;GUI
;------------------------
;GUI erzeugen
$GUI1 = GUICreate("Foto - Video - Tool", 460, 960, 0, 0)
;Buttons
$Quelle = GUICtrlCreateButton("Quellordner auswählen", 250, 295, 50, 50, $BS_ICON)
$beenden = GUICtrlCreateButton("Beenden", 250, 895, 50, 50, $BS_ICON)
;Beschriftung erstellen (Text, Rahmen, Farbe)
GUICtrlCreateLabel(" Erkennung von Fotos", 310, 220, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
GUICtrlSetBkColor(-1, 0xB0E0E6)
GUICtrlCreateLabel(" Initialien des Fotografen", 310, 255, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
GUICtrlSetBkColor(-1, 0xB0E0E6)
GUICtrlCreateLabel(" Quellordner auswählen", 310, 310, -1, -1, BitOR($WS_BORDER, $SS_CENTERIMAGE))
GUICtrlSetBkColor(-1, 0xD3D3D3)
;Bild auf die Buttons erstellen
GUICtrlSetImage($Quelle, "shell32.dll", 27)
GUICtrlSetImage($beenden, "shell32.dll", 27)
;Beschriftung
GUICtrlCreateLabel(" aktueller Quellpfad:", 10, 10, 440, -1, $SS_CENTERIMAGE)
GUICtrlSetBkColor(-1, 0xFFD700)
GUICtrlCreateLabel(" aktueller Zielpfad:", 10, 30, 440, -1, $SS_CENTERIMAGE)
GUICtrlSetBkColor(-1, 0xFFC8D)
;Liste mit Dateien
$listview = GUICtrlCreateListView("Bild|Datum", 10, 60, 234, 884, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_SORTDESCENDING));$LVS_SORTDESCENDING ;$LVS_SORTASCENDING
GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_FULLROWSELECT, $LVS_EX_FULLROWSELECT)
GUICtrlSendMsg($listview, $LVM_SETEXTENDEDLISTVIEWSTYLE, $LVS_EX_GRIDLINES, $LVS_EX_GRIDLINES)
;Spaltenbreite für die beiden Spalten festlegen
_GUICtrlListViewSetColumnWidth($listview, 0, 93)
_GUICtrlListViewSetColumnWidth($listview, 1, 120)
;Klapplisten für das Umbenennen der Dateien
$foto_erkennung = GUICtrlCreateCombo($Klapp_umS, 250, 220, 50); erster Eintrag
GUICtrlSetData(-1, $Klapp_um2, $Klapp_umS) ;weitere Einträge, getrennt durch | , zweiter Eintrag ist der Standard
$Klappen = GUICtrlCreateCombo($KlappS, 250, 255, 50); erster Eintrag
GUICtrlSetData(-1, $Klapp2, $KlappS) ;weitere Einträge, getrennt durch | , zweiter Eintrag ist der Standard
;------------------------------------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit];------------------------
;sonstiges
;------------------------
;Quellordner öffnen
_Quellordner()
_Quellordner2()
;GUI anzeigen
GUISetState(@SW_SHOW, $GUI1)
;------------------------------------------------------------------------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit];------------------------
;Funktionen
;------------------------
;Quellordner auswählen
Func _Quellordner()
_GUICtrlListViewDeleteAllItems($listview)
$Quellordner_ohne = FileSelectFolder("Bitte den Quellordner auswählen", "", "", $Standard_Quelle)
$Quellordner = $Quellordner_ohne & "\"
If $Quellordner_ohne = "a:\" Then
MsgBox(16, "Ungültiger Quellordner", "Bitte wählen Sie einen korrekten Quellordner aus")
_Quellordner()
Else
If ($Quellordner_ohne = "" Or StringInStr($Quellordner_ohne, ":") = 2) Then
GUICtrlCreateLabel(" ", 110, 10, 330, -1, $SS_CENTERIMAGE)
GUICtrlSetBkColor(-1, 0xFFD700)
GUICtrlSetData(-1, $Quellordner_ohne)
Else
MsgBox(16, "Ungültiger Quellordner", "Bitte wählen Sie einen korrekten Quellordner aus")
_Quellordner()
EndIf
EndIf
EndFunc ;==>_Quellordner
Func _Quellordner2()
;Größe des Arrays anhand von vorhandenen Dateien einstellen
$anzahl = DirGetSize($Quellordner, 3)
Dim $array_quelle[$anzahl[1] + 1][2]
;Array ($Filelist) erzeugen (nur Dateinamen)
Dim $array_quelle = 0
Dim $array_quelle[$anzahl[1] + 1][2]
$FileList = _FileListToArray($Quellordner, "*", 1)
For $i = 1 To UBound($FileList) - 1
$array_quelle[$i][0] = $FileList[$i]
$time2 = FileGetTime($Quellordner & $FileList[$i], 0)
$array_quelle[$i][1] = $time2[0] & $time2[1] & $time2[2] & $time2[3] & $time2[4] & $time2[5]
Next
;Array sortieren nach Datum
_ArraySort_2ary ($array_quelle, 1, 1)
;Einträge für ListView vornehmen (Datei und Datum)
For $i = 1 To UBound($FileList) - 1
If (StringRight($FileList[$i], 4) = ".jpg") OR (StringRight($FileList[$i], 4) = ".avi") OR (StringRight($FileList[$i], 4) = ".thm") Then
$time2 = FileGetTime($Quellordner & $FileList[$i], 0)
$video2 = $time2[0] & "." & $time2[1] & "." & $time2[2] & " " & $time2[3] & ":" & $time2[4] & ":" & $time2[5]
$item = GUICtrlCreateListViewItem($FileList[$i] & "|" & $video2, $listview)
EndIf
Next
;Einträge vom ListView sortieren
Dim $B_DESCENDING[_GUICtrlListViewGetSubItemsCount($listview) ];$B_DESCENDING
_GUICtrlListViewSort($listview, $B_DESCENDING, 1); $B_DESCENDING
_GUICtrlListViewSort($listview, $B_DESCENDING, 1); $B_DESCENDING (wenn andersrum sortieren, dann deaktivieren)
_bereits_kopiert()
EndFunc ;==>_Quellordner2
Func _bereits_kopiert()
If GUICtrlRead($Klappen) = $KlappS Then
If Not FileExists($log) Then
$file = FileOpen($log, 2)
FileWrite($log, 20000101100000 & @CRLF)
FileWrite($log, 20000101100000 & @CRLF)
FileClose($file)
Else
Dim $farbig
_FileReadToArray($log, $farbig)
;~ _ArrayDisplay($farbig)
_ArrayInsert($farbig, 1, $array_quelle[0][1])
_ArrayDelete($farbig, 3)
;~ _ArrayDisplay($farbig)
For $i = 0 to _GUICtrlListViewGetItemCount($listview)
$datum_als_zahl1 = StringReplace(_GUICtrlListViewGetItemText($listview, $i, 1), ".", "")
$datum_als_zahl2 = StringReplace($datum_als_zahl1, " ", "")
$datum_als_zahl = StringReplace($datum_als_zahl2, ":", "")
;~ If _GUICtrlListViewGetItemText($listview, 1) < $farbig[2] Then
GUICtrlSetColor($listview, 0xFFD700)
;~ EndIf
Next
EndIf
EndIf
EndFunc ;==>_bereits_kopiert
;------------------------
;Drücken eines Buttons
;------------------------
While 1
$msg = GUIGetMsg()
Select
;------------------------------------------------------------ Button Quellordner auswählen----------------------------------------
Case $msg = $Quelle
_Quellordner()
_Quellordner2()
;------------------------------------------------------------ Button Beenden ----------------------------------------
Case $msg = $beenden
Exit
;------------------------------------------------------------ auf das "x" klicken ----------------------------------------
Case $msg = $GUI_EVENT_CLOSE
Exit
EndSelect
WEnd
EDIT:
Hab die betreffende Zeile geändert. So wird die komplette ListView eingefärbt.
@GrungeRocker
kann du mir die Zeile ändern, verstehe nicht ganz was du meinst?