Möchte ein Explorer-Fenster in eine GUI stecken und nur bestimmte Dateitypen zB. jpg; png; gif; ico; php; html; htm; css; txt anzeigen.
Das ganze sollte umschaltbar in der Ansicht werden. von Listen-Ansicht auf Miniatur-Ansicht ohne Verzeichnisbaum.
Bei Suchbegiffe eingeben und Explorer findet er gar nichts immer nur den IE. Sollte ich diesen dazu verwenden?
MfG gabischatz
ico´s zur Datei
Bilder.zip
aktuelle au3
#include <Constants.au3>
#include <GuiConstantsEx.au3>
#include <WindowsConstants.au3>
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3> ;System-Ereignisse werden includet
#Include <GuiListView.au3>
#include <Array.au3>
#include <File.au3>
Opt("GUIOnEventMode", 0) ; Zum OnEvent-Mode wechseln
[/autoit] [autoit][/autoit] [autoit][/autoit] [autoit]HotKeySet("{ESC}", "On_Exit")
Func On_Exit()
Exit
EndFunc
Global $erweiterung= "*.*"
Global $fileVerz = @ScriptDir
Global $ListView1,$hListView,$fileName
Global $GuiWidth = 380, $GuiHeight = 740 ; GUI-Größe
Dim $Pic_all,$Pic_css,$Pic_gif,$Pic_htm,$Pic_html,$Pic_ico,$Pic_jpg,$Pic_pdf,$Pic_php,$Pic_png,$idClipmenu,$idAllClipmenu
$hGUI = GUICreate("Explorer", $GuiWidth, $GuiHeight, 0, -1, BitOR($WS_POPUP,$WS_BORDER, $WS_EX_TOPMOST )) ; 230, 740, -1, -1)
$Pic_gif = GUICtrlCreatePic(@ScriptDir& "\gif.gif", 20, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","gif", 0, 1)
$Pic_jpg = GUICtrlCreatePic(@ScriptDir& "\jpg.gif", 54, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","jpg", 0, 1)
$Pic_png = GUICtrlCreatePic(@ScriptDir & "\png.gif", 88, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","png", 0, 1)
$Pic_ico = GUICtrlCreatePic(@ScriptDir & "\ico.gif", 122, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","ico", 0, 1)
$Pic_css = GUICtrlCreatePic(@ScriptDir & "\css.gif", 156, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","css", 0, 1)
$Pic_htm = GUICtrlCreatePic(@ScriptDir & "\htm.gif", 190, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","htm", 0, 1)
$Pic_html = GUICtrlCreatePic(@ScriptDir & "\html.gif", 224, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","html", 0, 1)
$Pic_php = GUICtrlCreatePic(@ScriptDir & "\php.gif", 258, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","php", 0, 1)
$Pic_pdf = GUICtrlCreatePic(@ScriptDir& "\pdf.gif", 292, 14, 32, 32)
GUICtrlSetTip(-1, "Dateien anzeigen","pdf", 0, 1)
$Pic_all = GUICtrlCreatePic(@ScriptDir & "\all.gif", 326, 14, 32, 32)
GUICtrlSetTip(-1, "Alle Dateien anzeigen","*.*", 0, 1)
_CreateListView()
$hbtn_ausf = GUICtrlCreateButton("Notepad ausführen", 20, 435, 150)
$input1 = GUICtrlCreateInput("", 210, 435, 150)
GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; Erlaubt drag&drop
GUISetState (@SW_SHOW, $hGUI)
_loadfiles($fileVerz,$erweiterung)
GUIRegisterMsg($WM_NOTIFY, "WM_NOTIFY") ;<==============Bemachrichtigung Doppelklick
[/autoit] [autoit][/autoit] [autoit]While (TRUE)
$msg = GUIGetMsg (FALSE)
Switch ($msg)
Case $Pic_all
_NewCreateListView("*.*")
Case $Pic_jpg
_NewCreateListView("*.jpg")
Case $Pic_png
_NewCreateListView("*.png")
Case $Pic_gif
_NewCreateListView("*.gif")
Case $Pic_ico
_NewCreateListView("*.ico")
Case $Pic_htm
_NewCreateListView("*.htm")
Case $Pic_html
_NewCreateListView("*.*html")
Case $Pic_php
_NewCreateListView("*.php")
Case $Pic_pdf
_NewCreateListView("*.pdf")
Case $Pic_css
_NewCreateListView("*.css")
Case $hListView
$fileVerz = FileSelectFolder("Ordner wählen", "")
_NewCreateListView("*.*")
Case $idClipmenu
__GetClipPutFileName()
Case $idAllClipmenu
__GetClipPutFilePfad()
Case $hbtn_ausf
Run('Notepad.exe') ; Öffnet Notepad
Case $GUI_EVENT_CLOSE
Exit
EndSwitch
WEnd
Func _CreateListView()
$ListView1 = GUICtrlCreateListView("Filename |Filetype|height|width ", 20, 55, $GuiWidth - 40, 373)
_GUICtrlListView_SetBkColor($ListView1, $CLR_MONEYGREEN)
_GUICtrlListView_SetTextColor($ListView1, $CLR_BLACK)
_GUICtrlListView_SetTextBkColor($ListView1, $CLR_MONEYGREEN)
GUICtrlSetState(-1, $GUI_DROPACCEPTED) ; Erlaubt drag&drop
$hListView = GUICtrlCreateListViewItem("...", $ListView1)
$idContextmenu = GUICtrlCreateContextMenu($ListView1)
$idClipmenu = GUICtrlCreateMenuItem("Kopiere Name", $idContextmenu)
$idAllClipmenu = GUICtrlCreateMenuItem("Kopieren Pfad", $idContextmenu)
$idDragmenu = GUICtrlCreateMenuItem("Markiere Auswahl", $idContextmenu)
GUICtrlSetImage($hListView, "shell32.dll", 4)
EndFunc ;==>CreateListView
Func _NewCreateListView($aErw)
GUICtrlDelete($ListView1)
_CreateListView()
_loadfiles($fileVerz,$aErw)
EndFunc ;==>NewCreateListView
Func _loadfiles($folder,$filestyp)
$files = _FileListToArray($folder, $filestyp, 1)
local $szIconFile1, $nIcon1=0,$ListViewItem[UBound($files)]
If @error Then
return
EndIf
For $i = 1 To UBound($files) - 1
;$ListViewItem[$i]=GUICtrlCreateListViewItem($files[$i] & "|" & Int(FileGetSize($files[$i]) / 1024) & "|" & StringRight($files[$i], 3), $ListView1)
$ListViewItem[$i]=GUICtrlCreateListViewItem($files[$i] & "|" & StringRight($files[$i], 4), $ListView1)
_FileGetIcon( $szIconFile1, $nIcon1, $folder&$files[$i])
;~ If @AutoItVersion > "3.2.5.1" and $nIcon1>0 Then $nIcon1 = -$nIcon1 -1
GUICtrlSetImage(-1, $szIconFile1, $nIcon1)
Next
EndFunc ;==>loadfiles
[/autoit] [autoit][/autoit] [autoit]Func _FileGetIcon(ByRef $szIconFile, ByRef $nIcon, $szFile)
If StringInStr(FileGetAttrib($szIconFile), "D") Then
$nIcon = 3
Else
Dim $szRegDefault = "", $szDefIcon = "", $szExt, $arSplit
$szExt = StringRight($szFile, 4)
$szRegDefault = RegRead("HKCU\Software\Microsoft\Windows\CurrentVersion\Explorer\FileExts\" & $szExt, "ProgID")
If $szRegDefault = "" Then $szRegDefault = RegRead("HKCR\" & $szExt, "")
If $szRegDefault <> "" Then $szDefIcon = RegRead("HKCR\" & $szRegDefault & "\DefaultIcon", "")
If $szDefIcon = "" Then
$szIconFile = "shell32.dll"
ElseIf $szDefIcon <> "%1" Then ;SystemRoot%\System32\imageres.dll ist da
$arSplit = StringSplit($szDefIcon, ",")
If IsArray($arSplit) Then
If $arSplit[0] > 1 Then
$szIconFile = $arSplit[1]
$nIcon = StringTrimLeft ($arSplit[2],1)
Else
Return 0
EndIf
EndIf
EndIf
EndIf
Return 1
EndFunc ;==>_FileGetIcon
Func __GetFileName ()
If _GUICtrlListView_GetSelectedCount($ListView1) > 0 Then
For $i = 0 To _GUICtrlListView_GetItemCount($ListView1)
If _GUICtrlListView_GetItemSelected($ListView1, $i) Then
$aItem = _GUICtrlListView_GetItemTextArray($ListView1, $i)
$fileName=$aItem[1]
;$fileVerz=StringLower(StringRegExpReplace($fileVerz, "[ ]", "_"))
;$fileVerz=StringRegExpReplace($fileVerz, "[\\]", "/")
;ConsoleWrite($fileVerz & @CRLF)
;ClipPut("file:///"&$fileVerz&"/"&StringLower(StringRegExpReplace($fileName, "[ ]", "_")))
EndIf
Next
EndIf
Return $fileName
EndFunc ;==> GetFileName
Func __GetClipPutFileName()
__GetFileName ()
ClipPut(StringLower(StringRegExpReplace($fileName, "[ ]", "_")))
EndFunc ;==>GetClipPutFileName
Func __GetClipPutFilePfad()
$fileVerz=StringLower(StringRegExpReplace($fileVerz, "[ ]", "_"))
$fileVerz=StringRegExpReplace($fileVerz, "[\\]", "/")
ClipPut("file:///"&$fileVerz&"/"&StringLower(StringRegExpReplace($fileName, "[ ]", "_")))
EndFunc ;==>GetClipPutFilePfad
Func WM_NOTIFY($hWnd, $MsgID, $wParam, $lParam)
Local $tagNMHDR, $event, $hwndFrom, $code
$tagNMHDR = DllStructCreate("int;int;int", $lParam)
If @error Then Return 0
$code = DllStructGetData($tagNMHDR, 3)
If $wParam = $ListView1 Then
;ConsoleWrite($code & @CRLF)
Switch $code
case -2 ;Klick
__GetClipPutFileName()
Case -3 ;Doppelklick
__GetClipPutFilePfad()
EndSwitch
EndIf
Return $GUI_RUNDEFMSG
EndFunc ;==>WM_NOTIFY