Ich bin im moment dabei, eine Exploreralternative zu schreiben.
Was das nützt?
Beisspielsweise kann man damit ein Remoteprogramm basteln,ohne Bilder von einem anderen pc zu übertragen.( Mach ich ,wenn das hier fertig ^^)
Naja, Dank der Nachhilfe von Funkey und GTAspider im Kürzen ;)(Nachhilfe) hab ich es soweit gebracht, dass buttons die icons der Dateien anzeigen.
Hier werde ich nun regelmäßig meine Fortschritte Posten.
Konstruktive Kritik ist durchaus erwünscht, jedoch bitte ohne flame
Explorer version 0.000000001
Buggs:
Spoiler anzeigen
Der nächste Seite button ist nicht immer anwählbar.
To Do
Spoiler anzeigen
Buttons mit den Bildern "verlinken"
Spoiler anzeigen
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <File.au3>
$zaeler = 1
$Pfad = "C:\"
$FileList = _FileListToArray($Pfad)
If @error = 1 Then
MsgBox(0, "", "No Files\Folders Found.")
Exit
EndIf
If $FileList[0] = 0 Then
MsgBox(0, "Fehler", "Der angegebene Ordner enthält keine dateien.")
EndIf
For $i = 1 To $FileList[0]
Assign('Name' & $i, $FileList[$i])
Next
;Berechnet anzahl benötigter Seiten:
If $FileList[0] / 15 < Int($FileList[0] / 15) Then
$seitenanzahl = Int($FileList[0] / 15)
Else
$seitenanzahl = Int($FileList[0] / 15) + 1
EndIf
MsgBox(0, $FileList[0], $seitenanzahl)
For $ii = 1 To $seitenanzahl
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]$Form1 = GUICreate("Seite" & $ii, 874, 652, 191, 132)
GUISetCursor(0)
$y = 0
For $i = $zaeler To $zaeler + 15
Assign("Button" & $i, GUICtrlCreateButton("", 0, $y, 36, 36, $BS_ICON))
If StringRight(Eval("Name" & $i), 4) = ".lnk" Then
$aIcon = FileGetShortcut($Pfad & "\" & Eval("Name" & $i))
GUICtrlSetImage(-1, $aIcon[4], $aIcon[5])
ElseIf StringRight(Eval("Name" & $i), 4) = ".exe" Then ; Bild der exedatei sollte angenommen werden
GUICtrlSetImage(-1, $Pfad & "/" & Eval("Name" & $i), 0)
ElseIf StringRight(Eval("Name" & $i), 4) = ".bmp" Then ;Bild der bildatei sollte angenommen werden
GUICtrlSetImage(-1, $Pfad & "/" & Eval("Name" & $i), 0)
ElseIf StringRight(Eval("Name" & $i), 4) = ".jpg" Then
GUICtrlSetImage(-1, $Pfad & "/" & Eval("Name" & $i), 0)
ElseIf Eval("Name" & $i) ="" Then
GUICtrlSetState (Eval("Button"&$i), $GUI_HIDE )
ElseIf StringInStr(StringRight(Eval("Name" & $i), 5), ".") = 0 Then
GUICtrlSetImage(-1, "C:\WINDOWS\system32\SHELL32.dll", 5)
Else
GUICtrlSetImage(-1, _FileGetIcon($Pfad & "/" & Eval("Name" & $i)), 1)
EndIf
GUICtrlSetCursor(-1, 0)
Assign("Label" & $i, GUICtrlCreateLabel(Eval("Name" & $i), 40, $y, 829, 36))
$y += 40
Next
$Next = GUICtrlCreateButton("Nächste Seite", 592, 496, 121, 33, 0)
GUICtrlSetCursor(-1, 0)
GUISetState()
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
ExitLoop
Case $Next
GUIDelete($Form1)
$zaeler = $zaeler + 15
ExitLoop
EndSwitch
WEnd
Next
;_Filegeticon gibt den Pfad zu der ausführenden Exedatei zurück, als paramter muss noch die der iconindex 1 angegeben werden.
Func _FileGetIcon($szFile)
Local $arTemp, $sExt, $arPath
$arTemp = StringSplit($szFile, '.')
$sExt = '.' & $arTemp[$arTemp[0]]
If StringLower($sExt) = '.exe' Then Return $szFile
$arPath = StringRegExp(RegRead("HKCR\" & RegRead("HKCR\" & $sExt, "") & "\shell\open\command", ""), "(.*)(?i)exe", 2)
If IsArray($arPath) Then
Return StringReplace($arPath[0], '"', '')
Else
;unknown...
Return "shell32.dll"
EndIf
EndFunc ;==>_FileGetIcon