Hallo Com,
hier ein kleines Skript um sich DLLs in einer Listview darstellen zu lassen:
Spoiler anzeigen
#cs ------------------------------------------------------------------------------
[/autoit] [autoit][/autoit] [autoit]AutoIt Version: 3.3.6.1
Author: AutoBert: http://www.autoit.de/index.php?page…7402#post187402
Skriptbeispiel für den Umgang mit GUICtrlCreateListView, _GUICtrlListView_AddColumn, _GUICtrlListView_AddItem,
_GUICtrlListView_AddSubItem, _GUICtrlListView_SetImageList, _GUIImageList_AddIcon, _GUIImageList_GetImageCount
#ce -------------------------------------------------------------------------------------------------------------------------
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
#include <File.au3>
#cs
compstui.dll|7 Licht aus|8 Licht ein|83 Telefon|95 Fax
cryptui.dll|
dot3ui.dll|1 Info
filemgmt.dll|1 Hinweis
msrating.dll.dll|10 OK(rund)11 abbrechen(rund)
mmcndmgr.dll|9 abbrechen|14 Uhr|44 Lupe
#ce
Opt('MustDeclareVars', 1)
Global $hGui, $listview, $hListview, $hImage, $b, $iCount,$iWidth = @DesktopWidth, $iHeight = @DesktopHeight -80
Global $Combo, $Progress, $Label,$aFile, $sDLLName, $Msg, $sTitel = "Icon-Übersicht "
Local $exStyles = BitOR($LVS_EX_GRIDLINES, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES)
$hGui = GUICreate($sTitel & $sDLLName, $iWidth, $iHeight, 0, 0)
$Combo = GUICtrlCreateCombo("", 2, 2, 120)
$Progress = GUICtrlCreateProgress(125, 2, $iWidth -137,25)
;$Label = GUICtrlCreateLabel("TEST",330,2,200)
$aFile = _FileListToArray(@SystemDir, "*.DLL")
$listview = GUICtrlCreateListView("", 2, 42, $iWidth-4, $iHeight - 44, BitOR($LVS_SHOWSELALWAYS, $LVS_NOSORTHEADER, $LVS_REPORT))
$hListview = ControlGetHandle($hGui, "", $listview)
_GUICtrlListView_SetExtendedListViewStyle($listview, $exStyles)
For $i = 1 To 8
; Fügt die Spalten hinzu
_GUICtrlListView_AddColumn($listview, "Spalte " & $i, 120)
Next
GUISetState()
For $i = 1 To $aFile[0]
If _LoadIcons($aFile[$i]) > 0 Then GUICtrlSetData($Combo, $aFile[$i])
GUICtrlSetData($Progress, 100- ($i / $aFile[0] * 100))
;GUICtrlSetData($Label,$i & " / " & $aFile[0])
Next
GUICtrlSetData($Combo, "shell32.dll", "shell32.dll")
_showIcons("shell32.dll")
While 1
$Msg = GUIGetMsg()
Switch $Msg
Case $GUI_EVENT_CLOSE
Exit
Case $Combo
$sDLLName = GUICtrlRead($Combo)
_showIcons($sDLLName)
EndSwitch
WEnd
Func _showIcons($sDLLName)
Local $iSpalten, $iZeilen, $iBilder
_GUICtrlListView_DeleteAllItems($hListview)
$iCount = _LoadIcons($sDLLName)
WinSetTitle($hGui,"",$sTitel & $sDLLName)
;ConsoleWrite($sDLLName & " " & $iCount & @CRLF)
_GUICtrlListView_SetImageList($listview, $hImage, 1)
$iBilder = -1
For $iZeilen = 1 To Int(($iCount - 1) / + 1
$iBilder += 1
; Fügt die Items hinzu
_GUICtrlListView_AddItem($listview, "Bild: " & $iBilder, $iBilder)
For $iSpalten = 1 To 7
$iBilder += 1
; fügt die SubItems hinzu
_GUICtrlListView_AddSubItem($listview, $iZeilen - 1, "Bild: " & $iBilder, $iSpalten, $iBilder)
Next
Next
EndFunc ;==>_showIcons
Func _LoadIcons($sDLLName)
Local $iCount, $iBilder, $iError
Static $iGesamt
_GUIImageList_Destroy($hImage)
; Lädt die Bilder
$hImage = _GUIImageList_Create(32, 32, 5, 3, 128, 256)
_GUIImageList_AddIcon($hImage, @SystemDir & "\" & $sDLLName, 0,True)
$iBilder = 1
Do
$iError = _GUIImageList_AddIcon($hImage, @SystemDir & "\" & $sDLLName, $iBilder,True)
$iBilder += 1
Until $iError <= 0
$iCount = _GUIImageList_GetImageCount($hImage)
$iGesamt += $iCount
if $iCount <> 0 Then ConsoleWrite($sDLLName & " " & $iCount & " " & $iGesamt & @CRLF)
Return $iCount
EndFunc ;==>_LoadIcons
Es ist entstanden, weil ich weiss dass sich in den System-Dlls sehr viele (vielleicht auch für eigene Zwecke brauchbare?) Icons befinden. Ich suche nämlich Icons für die Datennavigation für DB-Programm. Ich habe noch nicht alle DLL's gesichtet und vielleicht deshalb auch noch nicht die gewsünschten Icons gefunden. Gesucht werden Icons die folgenden Symbolen bzw. Begriffen entsprechen "|< ", "<", ">", ">|", "+", "-", "bearbeiten", "neu", "speichern", "verwerfen". Vielleicht findert ihr ja welche für eure Zwecke, wenn ihr dabei zufällig auf die von mir gesuchten stosst bitte posten.
Edit: und hier noch ein ScreenShot:
autoit.de/wcf/attachment/11287/
Viel Spass beim sichten der Icons wünscht autoBert