找回密码
 加入
搜索
查看: 13984|回复: 21

[系统综合] 关于列表框显示图标的问题[已解决]

 火.. [复制链接]
发表于 2010-9-2 21:19:09 | 显示全部楼层 |阅读模式
本帖最后由 卫和谐 于 2010-9-3 19:23 编辑

结帖代码在20楼,感谢AFAN的帮助!!!


根据3MILE的作品,改了一个软件安装管理器,为了提高效率重写了部分代码,但是,在通过配置文件读取图标时,怎么也显示不 了,请大家帮助 一下!

重点部分的代码,这一部分不知道怎么写了!


代码:
#include <ButtonConstants.au3>
#include <GUIConstantsEx.au3>
#include <ListViewConstants.au3>
#include <StaticConstants.au3>
#include <WindowsConstants.au3>
#include <GuiButton.au3>
#include <GuiImageList.au3>
#include <GuiListView.au3>
#include <GuiStatusBar.au3>
#include <array.au3>
#include <WinAPI.au3>
#include <GDIPlus.au3>

Opt("TrayAutoPause", 0)
Opt("TrayMenuMode", 1)
Opt("GUICloseOnESC", 0)
Global $___sDll___Filename[5], $i1, $i2

FileInstall("logo.bmp", @TempDir & "\logo.bmp", 1)
Global $Configfile = @ScriptDir & "\softinst.ini"
$Ini = IniReadSection($Configfile, "config")
If $Ini[1][1] <> "绿色软件安装管理器 V1.0" Then
MsgBox(0, 0, "请尊重作者的劳动成果," & @CRLF & "保留版权吧!")
Exit
EndIf
$Form1 = GUICreate($Ini[1][1], 640, 480, @DesktopWidth / 8, @DesktopHeight / 8)
_WaterCtrl_Startup(@TempDir & "\logo.bmp", $Form1, '640,80')
$hGraphic = _GDIPlus_GraphicsCreateFromHWND($Form1)
GUISetState()
GUICtrlSetState(-1, $GUI_DISABLE)
;定义左侧按钮,显示列表框
Global $Type = IniReadSection($Configfile, "type"), $high = 35, $shigh = 45 ;$Type[n][1]储存则对应的数值
Global $TypeNumber = $Type[0][0] ;读取的数目
Dim $Listview[$TypeNumber + 1], $Button[$TypeNumber + 1], $a[$TypeNumber + 1]
For $i1 = 1 To $TypeNumber
$Button[$i1] = GUICtrlCreateButton($Type[$i1][1], 0, Number($shigh + $high), 100, 36, $BS_ICON)
$hImage = _GUIImageList_Create(30, 30, 5, 3)
_GUIImageList_AddIcon($hImage, @ScriptDir & "\files\Icon" & $i1 & ".ico", 0, True)
_GUICtrlButton_SetImageList($Button[$i1], $hImage)
$shigh += 38
$Listview[$i1] = GUICtrlCreateListView("软件名称|版本|描述", 105, 80, 535, 339, $LVS_ICON, BitOR($LVS_EX_FULLROWSELECT, $LVS_EX_GRIDLINES, $LVS_EX_DOUBLEBUFFER, $LVS_EX_CHECKBOXES))
_GUICtrlListView_SetColumnWidth($Listview[$i1], 0, 150)
_GUICtrlListView_SetColumnWidth($Listview[$i1], 1, 80)
_GUICtrlListView_SetColumnWidth($Listview[$i1], 2, 305)
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
GUICtrlSetState($Listview[1], $GUI_show)
Next
;定义安装按钮
$Group1 = GUICtrlCreateGroup("", 0, 420, 640, 40)
$Button_all = GUICtrlCreateButton("全部选择", 48, 430, 100, 30, $BS_ICON)
$Button_no = GUICtrlCreateButton("全部不选", 196, 430, 100, 30, $BS_ICON)
$Button_chenge = GUICtrlCreateButton("反向选择", 344, 430, 100, 30, $BS_ICON)
$Button_inst = GUICtrlCreateButton("安装所选", 492, 430, 100, 30, $BS_ICON)

all() ;默认显示全部软件

While 1
$nMsg = GUIGetMsg()
Switch $nMsg
Case $GUI_EVENT_CLOSE
Exit
Case $Button[1]
For $i1 = 1 To $TypeNumber
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[1], $GUI_show)
Case $Button[2]
For $i1 = 1 To $TypeNumber
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[2], $GUI_show)
Case $Button[3]
For $i1 = 1 To $TypeNumber
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[3], $GUI_show)
Case $Button[4]
For $i1 = 1 To $TypeNumber
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[4], $GUI_show)
Case $Button[5]
For $i1 = 1 To $TypeNumber
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[5], $GUI_show)
Case $Button[6]
For $i1 = 1 To $TypeNumber
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[6], $GUI_show)
Case $Button[7]
For $i1 = 1 To $TypeNumber
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[7], $GUI_show)
Case $Button[8]
For $i1 = 1 To $TypeNumber
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[8], $GUI_show)
Case $Button[9]
For $i1 = 1 To 9
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
GUICtrlSetState($Listview[9], $GUI_show)
Case $Button_all
$number = _GUICtrlListView_GetItemCount($Listview[1]) ;检索列表视图的项目数量
For $m = 0 To $number - 1
_GUICtrlListView_SetItemChecked($Listview[1], $m) ;设置选中状态
Next
subsend()
Case $Button_no
$number = _GUICtrlListView_GetItemCount($Listview[1])
For $m = 0 To $number - 1
_GUICtrlListView_SetItemChecked($Listview[1], $m, False)
Next
subsend()
Case $Button_chenge
$number = _GUICtrlListView_GetItemCount($Listview[1])
For $m = 0 To $number - 1
$checked = _GUICtrlListView_GetItemChecked($Listview[1], $m)
If $checked = True Then
_GUICtrlListView_SetItemChecked($Listview[1], $m, False)
Else
_GUICtrlListView_SetItemChecked($Listview[1], $m)
EndIf
Next
subsend()
Case $Button_inst
For $i1 = 1 To 9
GUICtrlSetState($Listview[$i1], $GUI_HIDE)
Next
Sendmessege()
GUICtrlSetState($Listview[1], $GUI_show)
$ch_number = 0
$number = _GUICtrlListView_GetItemCount($Listview[1]) ;检索列表视图的项目数量
For $m = 0 To $number - 1
$checked = _GUICtrlListView_GetItemChecked($Listview[1], $m) ;返回列表视图中项目选择状态
If $checked = True Then
$ch_number += 1
EndIf
Next
ProgressOn("进度条", "软件安装中。。。。", "0 %", 400, 650, 1)
$n = 0
For $m = 0 To $number - 1
$checked = _GUICtrlListView_GetItemChecked($Listview[1], $m)
If $checked = True Then
_GUICtrlListView_ClickItem($Listview[1], $m)
If StringInStr(_GUICtrlListView_GetItemText($Listview[1], $m, 1), " /") Or StringInStr(_GUICtrlListView_GetItemText($Listview[1], $m, 1), " -") Then
$text = StringLower(_GUICtrlListView_GetItemText($Listview[1], $m, 1))
$array = StringRegExp($text, "(.+.exe)(.+)", 1)
ShellExecuteWait($array[0], $array[1])
Else
ShellExecuteWait(_GUICtrlListView_GetItemText($Listview[1], $m, 1))
EndIf
ProgressSet(Number(100 / $ch_number) * $n, "完成" & Int(Number(100 / $ch_number) * $n) & "%")
$n += 1
EndIf
Next
ProgressOff()
MsgBox(0, "恭喜", "全部软件已经安装完成" & @CRLF & "程序将在5秒后关闭", 5)
_GDIPlus_GraphicsDispose($hGraphic) ;释放图形对象
_GDIPlus_Shutdown() ;清理微软 Windows GDI+ 使用的资源
Exit
EndSwitch
WEnd

Func all()
For $i1 = 2 To $TypeNumber ;从2循环到总类别数量
$SubNumber = IniReadSection($Configfile, $Type[$i1][1] & ".list");读取分类数量
_GUICtrlListView_InsertGroup($Listview[1], -1, $i1, $Type[$i1][1], 1) ;插入组
;MsgBox("4096", "测试图标列表", $SubNumber[0][0])

For $i2 = 1 To $SubNumber[0][0];循环
$ico = _GUIImageList_Create(24, 24, 5, 3) ;创建 ImageList 控件
$info1 = IniReadSection($Configfile, $SubNumber[$i2][1]);读取分类字段名

_GUIImageList_AddIcon($ico, @ScriptDir & "" & $info1[4][1], 0, True);添加图标到图像列表
_GUICtrlListView_SetImageList($Listview[1], $ico, 1) ;分配图像列表到第一个列表框
_GUICtrlListView_SetImageList($Listview[$i1], $ico, 1) ;分配图像列表到控件
_GUICtrlListView_AddItem($Listview[1], $SubNumber[$i2][1], 0) ;添加项目到列表的末尾
_GUICtrlListView_AddItem($Listview[$i1], $SubNumber[$i2][1], 0)
$index = _GUICtrlListView_FindInText($Listview[1], $SubNumber[$i2][1]) ;搜索包含指定文本的项目
$index1 = _GUICtrlListView_FindInText($Listview[$i1], $SubNumber[$i2][1])
_GUICtrlListView_SetItemGroupID($Listview[1], $index, $i1) ;设置项目组 ID
_GUICtrlListView_AddSubItem($Listview[1], $index, @ScriptDir & "" & $info1[4][1], 1)
_GUICtrlListView_AddSubItem($Listview[$i1], $index1, @ScriptDir & "" & $info1[4][1], 1)
_GUICtrlListView_AddSubItem($Listview[1], $index, $info1[5][1], 2) ;添加子项
_GUICtrlListView_AddSubItem($Listview[$i1], $index1, $info1[5][1], 2)
If $info1[2][1] = 1 Then
_GUICtrlListView_SetItemChecked($Listview[1], $index, True)
_GUICtrlListView_SetItemChecked($Listview[$i1], $index1, True)
EndIf
Next
Next
_GUICtrlListView_EnableGroupView($Listview[1]) ;启用或禁用控件项目分组
EndFunc ;==>all

Func Sendmessege()
For $i1 = 1 To 9
$a[$i1] = _GUICtrlListView_GetItemCount($Listview[$i1])
For $i = 0 To $a[$i1] - 1
$Check = _GUICtrlListView_GetItemChecked($Listview[$i1], $i)
If $Check = True Then
$checked = _GUICtrlListView_GetItemText($Listview[$i1], $i)
$masterindex = _GUICtrlListView_FindInText($Listview[1], $checked)
_GUICtrlListView_SetItemChecked($Listview[1], $masterindex)
Else
$checked = _GUICtrlListView_GetItemText($Listview[$i1], $i)
$masterindex = _GUICtrlListView_FindInText($Listview[1], $checked)
_GUICtrlListView_SetItemChecked($Listview[1], $masterindex, False)
EndIf
Next
Next
EndFunc ;==>Sendmessege

Func subsend()
$number = _GUICtrlListView_GetItemCount($Listview[1]) ;检索列表视图的项目数量
For $n = 0 To $number - 1
$lvstext = _GUICtrlListView_GetItemText($Listview[1], $n) ;检索项目或子项文本
$getgroup = _GUICtrlListView_GetItemGroupID($Listview[1], $n) ;获取项目组 ID
$checked = _GUICtrlListView_GetItemChecked($Listview[1], $n) ;返回列表视图中项目选择状态
If $checked = True Then
$listindex = _GUICtrlListView_FindInText($Listview[$getgroup], $lvstext) ;搜索包含指定文本的项目
_GUICtrlListView_SetItemChecked($Listview[$getgroup], $listindex, True) ;设置选中状态
Else
$listindex = _GUICtrlListView_FindInText($Listview[$getgroup], $lvstext) ;搜索包含指定文本的项目
_GUICtrlListView_SetItemChecked($Listview[$getgroup], $listindex, False) ;设置选中状态
EndIf
Next
EndFunc ;==>subsend

Func MY_WM_PAINT($hWnd, $Msg, $wParam, $lParam)
_WinAPI_RedrawWindow($Form1, 0, 0, $RDW_UPDATENOW)
_WinAPI_RedrawWindow($Form1, 0, 0, $RDW_VALIDATE)
Return $GUI_RUNDEFMSG
EndFunc ;==>MY_WM_PAINT

Func _WaterCtrl_Startup($bmp_File, $hWnd, $start = '', $WaterRadius = 3, $WaterHeight = 50, $Left = 0, $Top = 0)
If Not FileExists($bmp_File) Then Return SetError(1, 0, '')
If Not IsHWnd($hWnd) Then Return SetError(2, 0, '')
Local $code, $sDll_Filename, $hFileDllOut, $bmp_pic, $pos, $_pos[5]
$code = CtrlCode()
Do
$sDll_Filename = ''
While StringLen($sDll_Filename) < 7
$sDll_Filename = $sDll_Filename & Chr(Random(97, 122, 1))
WEnd
$sDll_Filename = @TempDir & '\~' & $sDll_Filename & '.tmp'
Until Not FileExists($sDll_Filename)
$hFileDllOut = FileOpen($sDll_Filename, 2)
FileWrite($hFileDllOut, $code)
FileClose($hFileDllOut)
FileSetTime($sDll_Filename, '20100725164800', 0)
$___sDll___Filename[0] = DllOpen($sDll_Filename)
If $___sDll___Filename[0] = -1 Then Return SetError(3, 0, '')
$___sDll___Filename[1] = $sDll_Filename
$bmp_pic = DllCall('user32.dll', 'handle', 'LoadImageW', 'handle', 0, 'wstr', $bmp_File, 'uint', 0, 'int', 0, 'int', 0, 'uint', 0x2010)
$___sDll___Filename[2] = $bmp_pic[0]
DllCall($___sDll___Filename[0], 'bool', 'enablewater', 'HWND', $hWnd, 'int', $Left, 'int', $Top, 'HWND', $___sDll___Filename[2], 'int', $WaterRadius, 'int', $WaterHeight)
$pos = StringSplit($start, ',;|')
If Not @error And $pos[0] >= 2 Then
$_pos[1] = $pos[1]
$_pos[2] = $pos[2]
If $pos[0] = 2 Then
$_pos[3] = 10
$_pos[4] = 500
ElseIf $pos[0] = 3 Then
$_pos[3] = $pos[3]
$_pos[4] = 500
ElseIf $pos[0] = 4 Then
$_pos[3] = $pos[3]
$_pos[4] = $pos[4]
EndIf
DllCall($___sDll___Filename[0], 'bool', 'waterblob', 'int', $_pos[1], 'int', $_pos[2], 'int', $_pos[3], 'int', $_pos[4])
EndIf
Local $csize = ControlGetPos($hWnd, '', '#327701')
Local $wsize = WinGetPos($hWnd)
$___sDll___Filename[3] = $csize[2]
If $wsize[2] < $csize[2] Then $___sDll___Filename[3] = $wsize[2]
$___sDll___Filename[4] = $csize[3]
If $wsize[3] < $csize[3] Then $___sDll___Filename[4] = $wsize[3]
Return $___sDll___Filename
EndFunc ;==>_WaterCtrl_Startup

; 函数名:_WaterCtrl_Shutdown;===================================================================
; 说明: 关闭并释放、删除由_WaterCtrl_Startup()打开的资源
;==========================================================================================start
Func _WaterCtrl_Shutdown()
DllCall($___sDll___Filename[0], 'bool', 'flattenwater')
DllCall($___sDll___Filename[0], 'bool', 'disablewater')
DllClose($___sDll___Filename[0])
FileDelete($___sDll___Filename[1])
EndFunc ;==>_WaterCtrl_Shutdown

; 函数名:_Autoblob;============================================================================
; 说明: 根据Duvet修改的启用随机效果
;==========================================================================================start
Func _Autoblob()
AdlibRegister('_Autoblob', Random() * 250 + 500)
DllCall($___sDll___Filename[0], 'bool', 'waterblob', 'int', Int(Random() * $___sDll___Filename[3] + 1), 'int', Int(Random() * $___sDll___Filename[4] + 1), 'int', Int(Random() * 9 + 1), 'int', Int(Random() * 450 + 1))
EndFunc ;==>_Autoblob

; 函数名:_AutoblobUn;==========================================================================
; 说明: 停用随机效果
;==========================================================================================start
Func _AutoblobUn()
AdlibUnRegister('_Autoblob')
DllCall($___sDll___Filename[0], 'bool', 'flattenwater')
EndFunc ;==>_AutoblobUn

Func CtrlCode()
;Afan提示:这里请勿修改~!
Local $code = '0x4D5A90000300000004000000FFFF0000B800000000000000400000000000000000000000000000000000000000000000000000000000000000000000F80000000E1FBA0E00B409CD21B8014CCD21546869732070726F6772616D2063616E6E6F742062652072756E20696E20444F53206D6F64652E0D0D0A2400000000000000B71BA5F4F37ACBA7F37ACBA7F37ACBA79165D8A7FB7ACBA77066C5A7F17ACBA79C65C0A7F27ACBA79C65C1A7F77ACBA79C65CFA7F17ACBA7C55CCFA7F07ACBA7F37ACAA7487ACBA7C55CC0A7FB7ACBA7347CCDA7F27ACBA70C5ACFA7F27ACBA752696368F37ACBA700000000000000000000000000000000504500004C0106008EE840480000000000000000E0000E210B010600001E00000032000000000000F02A000000100000003000000000001000100000000200000400000000000000040000000000000000900000000400000000000002000000000010000010000000001000001000000000000010000000D03E0000A7000000D83800008C00000000700000B80400000000000000000000000000000000000000800000DC03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000300000A40200000000000000000000000000000000000000000000000000002E7465'
$code &= '78740000008A1D000000100000001E000000040000000000000000000000000000200000602E72646174610000770F0000003000000010000000220000000000000000000000000000400000402E6461746100000094120000004000000002000000320000000000000000000000000000400000C0576174657243747208000000006000000002000000340000000000000000000000000000400000C02E72737263000000B8040000007000000006000000360000000000000000000000000000400000402E72656C6F630000480500000080000000060000003C0000000000000000000000000000400000420000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
$code &= '000000000000000000000000000000000000000000000000008BC16A0133D259C700A832001089501C89502089500489500889480C894810895014C7401805000000C3568BF1E814000000F644240801740756E8D1140000598BC65EC20400568BF18B461CC706A832001085C0740750E8B4140000598B462085C0740750E8A61400005983661C00836620005EC353568BF1578B461C85C0740750E889140000598B462085C0740750E87B140000598B5C24108BFB0FAF7C2414C1E70257E86C1400005789461CE863140000576A00FF761C894620E8ED180000576A00FF7620E8E21800008B4424348366140083C420895E048946085F5E5BC20800568BF18B46040FAF4608C1E002506A00FF761CE8B31800008B46040FAF4608C1E002506A00FF7620E89E18000083C4185EC3568BF1FF74240C837E0C00FF74240C750AFF7614E8F4010000EB0DFF76108BCEFF7614E8CF020000FF76188BCEFF7614E808000000837614015EC20800558BEC83EC14837D080056578B7904894DF48D7701750B8B411C8B51208945FCEB098B41208B511C8945FC8B4108480FAFC73BF08945EC7D7A538B79048D7C3EFE3BF7897DF07D648B45FC8D04B08945088D44B2048945F88B79048BCE2BCF03FE8B448AFC8D1CBA03448A040344BA048B7DF803048A8B4D080347F80343FC0303030783C704897DF8'
$code &= 'C1F8022B018B4D0C8BD8D3FB8B4D08834508042BC3463B75F089018B4DF47CAF8B45EC46463BF07C885B5F5EC9C20800558BEC83EC0C837D18005356578BF975058B471CEB038B47208B75108945F88BC68B1D2C3200100FAFC6837D08008945F47D17FFD38D0C368BD18B4F042BCA9949F7F98D4432018945088B550C85D27D12FFD38B5F088D0C362BD9994BF7FB8D5432018B5D088BC6F7D82BDE8BC883FB01894DFC89751089451889750C7D0C8BDE2B5D088D4C1901894DFC8BCA2BCE83F9017D0B8BCE2BCA8D4408018945188B47048B4D0803CE8D58FF3BCB7E072B4508488945108B47088D0C328D70FF3BCE7E062BC24889450C8B4D183B4D0C7D408B45FC8BD90FAFD98945183B45107D2D8B45180FAFC003C33B45F47D188D04118B75F80FAF47040345180345088D04868B75140130FF45188B4518EBCE41EBBB5F5E5BC9C21400558BEC83EC148B510856578B79044A8B711C0FAFD78D4701894DF43BC28955EC0F8DBE000000538B79048D7C38FE3BC7897DF00F8DA00000008B55108D7C86048D14828955F88D14868955FCEB038B4DF48B55FC8B490403C88345FC048B128BDA2B172B1C8E8B4DF4C1FA03C1FB030FAF59048BC883C70403CB03D18B4D0C408B0C918B55F88345F804890A8B4DF48B55FC8345FC048B49048B1203C88BDA2B172B1C8E8B4DF4C1FA03C1FB03'
$code &= '0FAF59048BC883C70403CB03D18B4D0C408B0C918B55F88345F8043B45F0890A0F8C7BFFFFFF8B55EC8B4DF440403BC20F8C44FFFFFF5B5F5EC9C20C00558BEC83EC205356578BF98B47088B4F048BD08B5F1C0FAFD1488D71010FAFC18955F0895DEC8945E03BF00F8DE10000008B4F048D4C0EFE3BF1894DE40F8DC80000008B45148D04B08945F48D04B38945F88D44B3048945FC8B45F88B55FC8B008BC82B0A8B570403D6894DE82B04938BD6C1F903C1F8030FAF470403D003CA3B4DF07D1A85C97E168B4510FF75E88B0C88518BCFE87F0000008B4DF489018345F8048345FC048B45F88B4DFC468345F4048B008BD02B118B4F0403CE2B048B8BCA8BDEC1F8030FAF4704C1F90303D803CB3B4DF07D1885C97E148B4510528B0C88518BCFE82F0000008B4DF489018345FC048345F8048345F4048B5DEC463B75E40F8C51FFFFFF8B45E04646E917FFFFFF5F5E5BC9C210008B4C240433D20FB6C12B4424088AD5C1E9100FB6D22B542408530FB6C92B4C240C5685C0BEFF0000007D0433C0EB063BC67E028BC685D27D0433D2EB063BD67E028BD685C97D0433C9EB063BCE7E028BCE33DB5E8AF98ADA0FB6C0C1E3080BC35BC208008B4C240433C049742683E903741D83E904741283E908740A83E908740583E908751033C0C3B800010000C36A1058C36A0258C38B4424046A080F'
$code &= 'AF44240C83C01F5924E099F7F9C3558BEC81EC140400008B4D08535657E83D0F00008B4D0C33DB85C9895DF0894DFCB8000100007E043BC87E038945FC8B75FC66C785ECFBFFFF00036689B5EEFBFFFF3BDE7D238D049D204000106A04508D849DF0FBFFFF50E89213000083C40C4383FB10895DF07CD98365F400BEFF000000BFFB0400008365F80083650C008D8C9DF1FBFFFF3B5DFC7D338B450C6A05995B01750CF7FB8841FF8B45F899F7FB88018B45F499F7FB8B5DF083C1048841FD8061FE0043397D0C895DF07EC80175F8397DF87EB50175F4397DF47EA983650C008D8C9DF1FBFFFF3B5DFC7D258B450C6A17995F01750CF7FF8841FF8801884101806102004383C104817D0CE91600007ED68D85ECFBFFFF50FF15303000108B4D0850E8320E00005F5E5BC9C3B82A2C0010E8D312000051568BF18975F08D863C04000033C9894DFC894804C700C0320010894E04898E44040000898E480400008BCEC645FC01C706AC320010E8810000008B4DF48BC65E64890D00000000C9C3568BF1E814000000F644240801740756E8B80D0000598BC65EC20400B8522C0010E8631200005151568BF1578975F0C706AC320010C745FC01000000E8310000008DBE3C040000897DECC707E83200108BCFC645FC02E8840D00008B4DF4B8D4320010890789065F5E64890D00000000C9C35356'
$code &= '8BF133DB578B46043BC3740750FF150030001068280400008D46085350895E04899E30040000E8CC1100008B86480400008DBE4804000083C40C3BC3740650E8A5130000891F899E34040000899E380400005F5E5BC333C0398144040000740B39814804000074036A0158C3558BEC83EC0C56578BF133FF397E04750733C0E91C0100008B460C538945F48B46108BCE8945F8E8BEFFFFFF85C0747F66837E160872788D863C0400003BC7750433C0EB038B400450FFB648040000E83B1300008B5D083BDF750433C0EB038B4304FF751450FFB648040000E8181300008B86300400003BDF750433DBEB038B5B0457FF75F8FF75F45757508D460850FF75F8FF75F4FF7510FF750C53FFB648040000E8DB1200008BF0E98200000039BE400400008B5D08897DFC742D6A26FF7308FF150C300010F6C401741DFF75148D863C0400008BCB50E8390C0000FF73048945FCFF15083000108B8E300400003BDF750433C0EB038B4304FFB63404000083C6085651FF75F8575757FF75F8FF75F4FF7510FF750C50FF1504300010397DFC8BF0740B578BCBFF75FCE8E60B00008BC65B5F5EC9C21000B85C2C0010E86510000083EC0C5356578BF18965F08975ECE83BFEFFFF8B7D0833DB3BFB0F84EF000000395D0C0F84E60000000FB7470E50895DFCE8ECFBFFFF8986380400008D04852C0000008D'
$code &= '4E08505751E80B10000083C41053FF15703200103BC38945087505E8810B00008D8630040000535350FFB6340400008D460850FF7508FF1514300010FF750889460453FF156C320010395E047505E84E0B00008B5E1C85DB75150FB7470E50FF7704E8AAFBFFFF8B5F0859590FAFD8FF151030001053FF750CFFB630040000E8910F000083C40C8BCEE85000000085C07505E80A0B00006A0158EB318B4DE8E8F70A00008B4DECE835040000837D0800740BFF75086A00FF156C3200108B4DECE845FDFFFFB8761A0010C333C08B4DF45F5E64890D000000005BC9C20800B8702C0010E8390F000081EC2C04000053568BF1578D9E3C0400008BCB895DECE8740A000033FF397E04741E39BE380400007508680001000053EB4157FF15703200103BC78945F0750733C0E9C30100008B8638040000C1E00250E82D0A00008BD8593BDF895DE0751FFF75F057FF156C320010FFB638040000FF75ECE8C6FAFFFF5959E98B0100008D4DD0E84A0A0000FF75F0897DFCE84B0A00003BC7750433C0EB038B400450FF151C300010508D4DD0E81E0A00008D45D085C07405397DD4752653E8BE09000059FF75F057FF156C320010FFB638040000FF75ECE866FAFFFF5959E91B010000FF75F057FF156C320010FF76048B3D18300010FF75D4FFD785C08945E8537424FFB6380400006A00FF75D4FF15'
$code &= '24300010FF75E88945F0FF75D4FFD733C9394DF0751C53E855090000FFB638040000FF75ECE808FAFFFF83C40CE9BC000000668B8638040000394DF066C785C8FBFFFF0003668985CAFBFFFF7E5B8D95CDFBFFFF8D8DCBFBFFFF2BD38DBDCCFBFFFF8955E88D95CEFBFFFF2BCB2BFB2BD38D43018955E48B55F08955F08955CC8A50018B5DE88814018A108814078A50FF8814038B55E48024020083C004FF4DF075DD8B4DCC8B5DE08BB6380400003BCE7D1E8D848DCDFBFFFF2BF18060FF00802000806001008060020083C0044E75EB53E89A080000598D85C8FBFFFF50FF15303000108B4DEC50E88F080000834DFCFF8D4DD08BF0E8BD0800008BC68B4DF45F5E5B64890D00000000C9C3F644240401568BF1C706D4320010740756E84E080000598BC65EC20400C701D4320010C3C3C20400B89C2C0010E8EE0C000083EC745333DB56578BF1895DE4C745E0FC320010538D4DAC895DFCE86C0800008D4DD0C645FC01E85A0800008D45ACC645FC02F7D81BC02345B050FF151C300010508D4DD0E836080000FF75108B7D0C57FF75B0FF152C300010508D4DE0E8DB0700008D45E0F7D81BC02345E450FF75D4E828080000FF75108945E88D45C057535350FF15743200108D45C08B4D08508D45C0508D45D050E8070800008BC70FAF4510C1E00250E88C070000598986300400008B4D'
$code &= '10508D4580894D88C7458028000000897D8466C7458C010066C7458E2000895D90895D94895D98895D9C895DA0895DA4508BCEE892FBFFFF395D108BB630040000895D087E5E8975F03BFB895D0C7E418B75F0FF7508FF750CFF75D4FF152830001033D20FB6C88AD4C1E8100FB6C08945EC33C00FB6D28AE10FB64DEC8AC2C1E0080BC1FF450C890683C604397D0C7CC2FF45088BC7C1E0020145F08B45083B45107CA58B45E83BC3750433C0EB038B400450FF75D4E82E0700008D4DD0C645FC01E8FE0600008D4DAC885DFCE8ED060000C745E0E83200108D4DE0C745FC03000000E8A70600008B4DF45F5E5B64890D00000000C9C20C00C3568BF1E814000000F644240801740756E86E060000598BC65EC20400B8B02C0010E8190B000051568BF18975F0C706E83200108365FC00E8590600008B4DF4C706D43200105E64890D00000000C9C3568BF1E814000000F644240801740756E81F060000598BC65EC20400B8C42C0010E8CA0A000051568BF18975F0C706E83200108365FC00E80A0600008B4DF4C706D43200105E64890D00000000C9C3568BF1E814000000F644240801740756E8D0050000598BC65EC20400B8D82C0010E87B0A000051568BF18975F0C706E83200108365FC00E8BB0500008B4DF4C706D43200105E64890D00000000C9C3A154300010C3B810330010C356'
$code &= '8BF16A00E8D00600008B466CC70630330010A3006000108BC65EC3568BF1E814000000F644240801740756E859050000598BC65EC20400C70130330010E99D060000E805000000E90A000000B908410010E9A9FFFFFF68E91F0010E84C0A000059C3B908410010E9CBFFFFFF558BEC51515633F639350460001074086A0158E9CF000000E817080000508D4DF8E8590600006830090000E8F30400003BC659740A568BC8E818010000EB0233C0566A658BC8A3CC410010E829060000A1CC4100103BC6750433C0EB038B40206A015656A304600010FF7510FF750C6AFF50FF15883200103935046000107414FF751C8B0DCC410010FF7518FF7514E86B0300006AF0FF3504600010FF15843200102D00000040506AF0FF3504600010FF1580320010FF7508FF3504600010FF157C3200106A05FF3504600010FF15783200108B4DFC8B55F833C03935046000108951040F95C05EC9C21800A10460001085C0740BFF74240450FF157C3200106A0158C20400FF7424108B0DCC410010FF742410FF742410FF742410E8B00300006A0158C210008B0DCC410010E8C70300006A0158C38B0D0460001033C085C9741251FF158C32001085C0740783250460001000C3B8052D0010E87A08000051568BF1FF75088975F06A65E8D50500008365FC008D4E64E880F5FFFF8D8EB4040000C645FC01E871'
$code &= 'F5FFFF8D8E04090000C645FC02E873EEFFFF8B4DF4C706703400108BC65E64890D00000000C9C20400568BF1E814000000F644240801740756E857030000598BC65EC20400B8312D0010E80208000051568BF18975F08D8E04090000C745FC02000000E863EEFFFF8D8EB4040000C645FC01E86DF5FFFF8065FC008D4E64E861F5FFFF834DFCFF8BCEE8290500008B4DF45E64890D00000000C9C3C20400A174310010C3B8D8330010C3568BF1E8110500006A01C7862809000005000000C7862C09000032000000585EC3B8442D0010E87C07000083EC54568BF1568D4DA0E8EB04000033C933C05151508D45A0894DFC508D8EB4040000E8ABF5FFFF834DFCFF8D4DA0E8C00400008B4DF45E64890D00000000C9C3B8582D0010E83107000083EC14817D08B3070000568BF175478B86E40800008B8E9404000050518D8E04090000E852EEFFFF568D4DE0E89004000033C933C05151508D45E0894DFC508D8EB4040000E83EF5FFFF834DFCFF8D4DE0E8650400008BCEE8580400008B4DF45E64890D00000000C9C20400558BEC83EC10568BF1FF75108365F0008B46708365F400FF750C8945F88B46748945FC8D45F050FF159032001083F8017527FFB6180900008B46742B45108D8E04090000FFB62C090000FFB62809000050FF750CE8ABEEFFFF8BCEE8E90300005EC9C20C00558BEC'
$code &= '83EC10568BF1FF75108365F0008B46708365F400FF750C8945F88B46748945FC8D45F050FF159032001083F80175308B8E2C090000FFB6180900008B46742B45108D0C89D1E1518B8E28090000D1E15150FF750C8D8E04090000E83DEEFFFF8BCEE87B0300005EC9C20C00568BF1FF7660FF7620FF15943200108BCEE8720300005EC3B86C2D0010E8D005000083EC1C568BF1578D4DF0E86903000033FF8D4DF05757FF7508897DFCE8510300008D45D8506A18FF7508FF1520300010FF75E08D45F08D4E64FF75DC50E896F8FFFFFF75E08D45F08D8EB4040000FF75DC50E881F8FFFF3BF7750433C0EB038B46206A02FF75E0FF75DC57576AFF50FF1588320010FF75E08D8E04090000FF75DCE8F3EBFFFF8B450C576A1E68B3070000FF76208986280900008B451089862C090000FF1598320010834DFCFF8D4DF0894660E8B40200008B4DF45F5E64890D00000000C9C20C00FFB1180900008B41742B44240C81C104090000FF742414FF74241450FF742414E822EDFFFFC2100081C104090000E9ECEBFFFF6A00FF7120FF159C320010C36A01FF7120FF159C320010C3CCFF251C320010FF2514320010FF2510320010FF250C320010FF2508320010FF2504320010FF2500320010FF25FC310010FF25F8310010FF25F4310010FF25F0310010FF25EC310010FF25E8310010FF25E43100'
$code &= '10FF25E0310010FF25D8310010FF2544300010FF2548300010FF254C300010FF2550300010FF2558300010FF255C300010FF2560300010FF2564300010FF2568300010FF256C300010FF2570300010FF2574300010FF2578300010FF257C300010FF2580300010FF2584300010FF2588300010FF258C300010FF2590300010FF2594300010FF2598300010FF259C300010FF25A0300010FF25A4300010FF25A8300010FF25AC300010FF25B0300010FF25B4300010FF25B8300010FF25BC300010FF25C0300010FF25C4300010FF25C8300010FF25CC300010FF25D0300010FF25D4300010FF25D8300010FF25DC300010FF25E0300010FF25E4300010FF25E8300010FF25EC300010FF25F0300010FF25F4300010FF25F8300010FF25FC300010FF2500310010FF2504310010FF2518320010FF25DC310010FF2508310010FF250C310010FF2510310010FF2514310010FF2518310010FF251C310010FF2520310010FF2524310010FF2528310010FF252C310010FF2530310010FF2534310010FF2538310010FF253C310010FF2540310010FF2544310010FF2548310010FF254C310010FF2550310010FF2554310010FF2558310010FF255C310010FF2560310010FF2564310010FF2568310010FF256C310010FF2570310010FF2578310010FF257C310010FF2580310010FF2584310010FF'
$code &= '2588310010FF258C310010FF2590310010FF2594310010FF2598310010FF259C310010E805000000E948000000B9D8410010E90000000056680006000068E22700108BF16A01E816040000C7064C3500108BC65EC3568BF1E813000000F644240801740656E8FD0300008BC65EC20400E9F803000068D8270010E85D02000059C3B9D8410010E9E5FFFFFFB8802D0010E8E0010000515168D84100108D4DECE877FEFFFFFF75148365FC00FF7510FF750CFF7508E8BA0300008B4DF08B55EC8951048B4DF464890D00000000C9C21000B8D8410010C3558BEC5151837D0C01560F8593000000535733FF897D0CE8C3030000E8B8030000576850350010578BF0FF75088B5E08E89E03000085C0741EE8D5FCFFFF8B780485FF74198B078BCFFF505885C0750E8B078BCFFF5070E871030000EB2EFF7508BF68520010895E0857E8580300006A40E873FCFFFF85C059740A6A00578BC8E83C030000C7450C01000000895E08E845030000FF7008E81F0300008B450C5F5BEB7F837D0C00754668D8410010E8080300008BF0E81F030000897008E851FCFFFF8B400485C074078B108BC8FF5270E8E00200006AFFE8D3020000E8EC0200006A016868520010E8BC020000EB30837D0C03752A68D84100108D4DF8E843FDFFFFE8AE0200006AFFE8A1020000FF7508E88D0200008B45FC8B4DF88948'
$code &= '046A01585EC9C20C00837C240801753068002000006A00FF153C30001085C074365650FF1538300010E88D02000068D84100108BF0E8630200008946085EEB14837C240800750DE86F020000FF7008E8490200006A0158C20C008B41048B09894804C3FF2528320010CCCCCCCCCCCCCCCCCCCCCCCCFF2530320010FF25343200106AFF5064A100000000508B44240C64892500000000896C240C8D6C240C50C3568BF1E89B010000F644240801740756E810FBFFFF598BC65EC20400833D90520010FF750CFF742404FF154832001059C3688C5200106890520010FF74240CE86501000083C40CC3FF742404E8CBFFFFFFF7D81BC059F7D848C38B44240885C0750E3905845200107E2EFF0D845200108B0D5032001083F8018B09890D88520010753F6880000000FF153C32001085C059A390520010750433C0EB66832000A190520010680C4000106800400010A38C520010E8F7000000FF05845200105959EB3D85C07539A19052001085C074308B0D8C520010568D71FC3BF072128B0E85C97407FFD1A19052001083EE04EBEA50FF153832001083259052001000595E6A0158C20C00558BEC538B5D08568B750C578B7D1085F67509833D8452001000EB2683FE01740583FE027522A17C40001085C07409575653FFD085C0740C575653E815FFFFFF85C0750433C0EB4E575653E8EDFCFF'
$code &= 'FF83FE0189450C750C85C07537575053E8F1FEFFFF85F6740583FE037526575653E8E0FEFFFF85C0750321450C837D0C007411A17C40001085C07408575653FFD089450C8B450C5F5E5B5DC20C00CCFF2540320010FF2544320010FF254C320010FF2558320010FF255C320010FF2560320010FF2564320010FF25D4310010FF25D0310010FF25CC310010FF25C8310010FF25C4310010FF25C0310010FF25BC310010FF25B8310010FF25B4310010FF25B0310010FF25AC310010FF25A8310010FF25A4310010FF25A0310010FF2520320010CCCC8B4DF0E9ADF0FFFF8B4DF081C13C040000E91DF3FFFFB828360010E992FDFFFF8B4DF0E98DF0FFFF8B4DF081C13C040000E9FDF2FFFF8B4DECE977F0FFFFB858360010E96AFDFFFFB890360010E960FDFFFFCCCC8D4DD0E9E8F8FFFFB8E8360010E94CFDFFFFCCCC8D4DE0E974F2FFFF8D4DACE9C6F8FFFF8D4DD0E9C4F8FFFF8D4DE0E92DF0FFFFB810370010E920FDFFFFCCCC8B4DF0E919F0FFFFB850370010E90CFDFFFFCCCC8B4DF0E905F0FFFFB878370010E9F8FCFFFFCCCC8B4DF0E9F1EFFFFFB8A0370010E9E4FCFFFFCCCC8B4DF0E946FAFFFF8B4DF083C164E968EAFFFF8B4DF081C1B4040000E95AEAFFFFB8C8370010E9B7FCFFFFCC8B4DF0E91AFAFFFF8B4DF083C164E93CEAFFFF8B4DF081C1B4040000E92EEAFFFFB800'
$code &= '380010E98BFCFFFFCC8D4DA0E900FAFFFFB838380010E978FCFFFFCCCC8D4DE0E9FEF9FFFFB860380010E964FCFFFFCCCC8D4DF0E9FCF9FFFFB888380010E950FCFFFFCCCC8D4DECE925FCFFFFB8B0380010E93CFCFFFF00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000A03D0000B03D0000C43D0000D63D0000E63D0000F23D0000063E0000163E00002C3E00003A3E00004E3E00005A3E0000903D000000000000AC3C0000B83C0000000000002B0B0080F30D0080991600800F160080B2100080E718008086110080FA090080D009008063160080520F0080410400804F1400805C090080120D0080B4140080B6140080A50A0080EF0F00805A120080BB140080A914008052160080710F0080A60B00804B0C0080BB0C008071110080400C0080BE0C0080A90B0080090C0080A00B0080F60E0080F70E0080F10E0080070C0080F00F00800E120080481100809A0E0080310200802F03008026080080431900809114008018110080F512008086130080EE0F0080EF0600803711008079140080510900802B140080E6180080011100'
$code &= '80A0140080D60E0080E512008059110080580A008007080080E8180080A50E0080C9130080BF0600808D1400808E0900804C0800809D14008013120080491100800D0E008081020080440100808A10008066120080F3020080D60100804B090080650200802101008035190080F60200806E080080DB0100809804008027060080290600809E04008056010080DB040080AD04008022060080E5040080E70400802A060080580200803A0300800D01008032020080A417008043010080680600808002008030030080F604008059090080900400809F1600802A0E00804F0E00806C0E00806E0900806906008037030080D2090080390300805C04008000000000123C00001C3C0000243C00002E3C0000423C00004A3C0000603C0000783C0000863C0000903C00009C3C0000000000007E3E00008E3E00009C3E0000AE3E000000000000D43C0000E03C0000E83C0000F23C0000003D00000C3D00001E3D0000303D0000403D0000503D00005C3D0000683D0000743D000000000000000000002A1000102E25001043170010D11C0010D01C0010D11C0010282500102B1F0010D11C0010D01C0010D11C00102E250010AC1C0010D11C0010D01C0010D11C0010342500108D1E0010D11C0010D01C0010D11C001076250010DC1E0010D11C0010D01C0010D11C00107A1F001018330010000000'
$code &= '0000000000000000000000000000000000000000005A260010A21F0010D11C0010D01C0010D11C0010542600104E26001048260010422600103C2600103626001030260010801F00102A260010242600101E26001018260010122600100C2600100626001000260010FA250010F4250010EE250010E8250010E2250010DC250010D6250010D0250010CA250010C4250010BE250010B8250010B2250010AC250010A6250010A02500109A250010942500108E250010882500100000000019220010E03300100F0000000000000000000000000000000C00000046220010130100000000000000000000000000000D0000009122001000020000000000000000000000000000310000000723001001020000000000000000000000000000310000006C230010020000000000000000000000000000000C000000DA2300100000000000000000000000000000000000000000000000002C270010A4210010D11C0010D01C0010D11C0010262700102027001048260010422600103C26001036260010302600101F2200102A260010242600101E26001018260010122600100C2600100626001000260010FA2500101A270010142700100E2700100827001002270010FC260010F6260010F0260010EA260010E4260010DE260010D8260010D226001016220010F724001003250010CC260010C62600'
$code &= '10C0260010BA260010B4260010AE260010A8260010A22600109C2600109626001090260010252200108A260010842600107E26001078260010C8350010AC2700100000000010360010EB29001000000000804000100000000000000000FFFFFFFF0000000000000000A04000100100000000000000FFFFFFFF0000000000000000C04000100200000000000000FFFFFFFF000000000000000090350010783500106035001000000000000000000000000003000000A8350010000000000000000000000000C0400010B835001000000000F04000100000000000000000FFFFFFFF0000000000000000E035001000000000000000000000000001000000F8350010000000000000000000000000F040001000360010000000002005931902000000483600100000000000000000000000000000000000000000FFFFFFFF142C0010000000001C2C00102005931903000000783600100000000000000000000000000000000000000000FFFFFFFF342C0010000000003C2C0010000000004A2C00102005931902000000B036001001000000C0360010000000000000000000000000FFFFFFFF00000000FFFFFFFF0000000000000000000000000100000001000000D8360010000000000000000060400010E8FFFFFF471A0010200593190100000008370010000000000000000000000000000000'
$code &= '0000000000FFFFFFFF682C00102005931904000000303700100000000000000000000000000000000000000000FFFFFFFF7C2C001000000000842C0010010000008C2C0010FFFFFFFF942C00102005931901000000703700100000000000000000000000000000000000000000FFFFFFFFA82C00102005931901000000983700100000000000000000000000000000000000000000FFFFFFFFBC2C00102005931901000000C03700100000000000000000000000000000000000000000FFFFFFFFD02C00102005931903000000E83700100000000000000000000000000000000000000000FFFFFFFFE42C001000000000EC2C001001000000F72C00102005931903000000203800100000000000000000000000000000000000000000FFFFFFFF102D001000000000182D001001000000232D00102005931901000000583800100000000000000000000000000000000000000000FFFFFFFF3C2D00102005931901000000803800100000000000000000000000000000000000000000FFFFFFFF502D00102005931901000000A83800100000000000000000000000000000000000000000FFFFFFFF642D00102005931901000000D03800100000000000000000000000000000000000000000FFFFFFFF782D0010A83900000000000000000000083C0000443000008C3B000000000000000000'
$code &= '00543C0000283200009C3900000000000000000000C63C000038300000D03B00000000000000000000843D00006C320000643900000000000000000000743E000000300000BC3B00000000000000000000C23E0000583200000000000000000000000000000000000000000000A03D0000B03D0000C43D0000D63D0000E63D0000F23D0000063E0000163E00002C3E00003A3E00004E3E00005A3E0000903D000000000000AC3C0000B83C0000000000002B0B0080F30D0080991600800F160080B2100080E718008086110080FA090080D009008063160080520F0080410400804F1400805C090080120D0080B4140080B6140080A50A0080EF0F00805A120080BB140080A914008052160080710F0080A60B00804B0C0080BB0C008071110080400C0080BE0C0080A90B0080090C0080A00B0080F60E0080F70E0080F10E0080070C0080F00F00800E120080481100809A0E0080310200802F03008026080080431900809114008018110080F512008086130080EE0F0080EF0600803711008079140080510900802B140080E618008001110080A0140080D60E0080E512008059110080580A008007080080E8180080A50E0080C9130080BF0600808D1400808E0900804C0800809D14008013120080491100800D0E008081020080440100808A10008066120080F3020080D60100804B0900'
$code &= '80650200802101008035190080F60200806E080080DB0100809804008027060080290600809E04008056010080DB040080AD04008022060080E5040080E70400802A060080580200803A0300800D01008032020080A417008043010080680600808002008030030080F604008059090080900400809F1600802A0E00804F0E00806C0E00806E0900806906008037030080D2090080390300805C04008000000000123C00001C3C0000243C00002E3C0000423C00004A3C0000603C0000783C0000863C0000903C00009C3C0000000000007E3E00008E3E00009C3E0000AE3E000000000000D43C0000E03C0000E83C0000F23C0000003D00000C3D00001E3D0000303D0000403D0000503D00005C3D0000683D0000743D0000000000004D464334322E444C4C0099026D656D7365740000A60272616E64000097026D656D637079000049005F5F4378784672616D6548616E646C6572005E0266726565000091026D616C6C6F6300004D53564352542E646C6C00000E003F3F31747970655F696E666F404055414540585A000055005F5F646C6C6F6E657869740086015F6F6E65786974000F015F696E69747465726D009D005F61646A7573745F666469760000CC014C6F63616C4672656500C8014C6F63616C416C6C6F6300004B45524E454C33322E646C6C0000030252656C656173654443'
$code &= '00FD00476574444300440253657452656374006A0253686F7757696E646F7700003E02536574506172656E7400580253657457696E646F774C6F6E67410000560147657457696E646F774C6F6E674100005B0253657457696E646F77506F7300008E0044657374726F7957696E646F7700EA015074496E52656374000095014B696C6C54696D657200520253657454696D65720000B700456E61626C6557696E646F7700005553455233322E646C6C0000420043726561746550616C6574746500530044656C6574654F626A6563740000D701536574444942697473546F44657669636500AC015265616C697A6550616C65747465000025014765744465766963654361707300D700476469466C75736800002F0043726561746544494253656374696F6E0000C70153656C6563744F626A65637400002A00437265617465436F6D70617469626C65444300004F014765744F626A6563744100002301476574444942436F6C6F725461626C6500005601476574506978656C000031004372656174654469736361726461626C654269746D61700047444933322E646C6C00020044726177446962436C6F7365000003004472617744696244726177000900447261774469625265616C697A6500000A004472617744696253657450616C65747465004D5356465733322E646C6C000000000000'
$code &= '008EE84048000000002A3F0000010000000500000005000000F83E00000C3F0000203F0000F31F000029210000F92000001A210000DF200000383F0000453F0000513F00005E3F00006D3F00000100000003000400020077617465726374726C2E646C6C0064697361626C65776174657200656E61626C65776174657200666C617474656E7761746572007365747761746572706172656E74007761746572626C6F62000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000007A270010C91F0010000000000000000000000000000000000000000000000000FFFFFF000000FF0000FF000000FFFF00FF000000FF00FF00FFFF000000008000008000000080800080000000800080008080000080808000C0C0C00058350010000000002E50415643457863657074696F6E4040000000005429001058350010000000002E3F4156434E6F547261636B4F626A65637440400000000058350010000000002E3F41564146585F4D4F44554C455F53544154454040000058350010000000'
$code &= '002E3F41565F4146585F444C4C5F4D4F44554C455F535441544540400000000000000000000000000058350010000000002E3F4156747970655F696E666F404000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
$code &= '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000002000500000020000080100000003800008000000000000000000000000000000100650000005000008000000000000000000000000000000100010000006800008000000000000000000000000000000100090400008000000000000000000000000000000000000100040800009000000080740000360000000000000000000000A0700000E00300000000000000000000E00334000000560053005F00560045'
$code &= '005200530049004F004E005F0049004E0046004F0000000000BD04EFFE00000100000002000000000000000200000000003F00000000000000040000000200000000000000000000000000000040030000010053007400720069006E006700460069006C00650049006E0066006F0000001C03000001003000380030003400300034006200300000007C003200010043006F006D006D0065006E00740073000000346CB97E79724865D263F64E280049004E004E004F002000530065007400750070002000134E28752900200068007400740070003A002F002F0072006500730074006F006F006C0073002E00680061006E007A006900660079002E006F0072006700000032000900010043006F006D00700061006E0079004E0061006D0065000000000052004500530054004F004F004C0053000000000066001F000100460069006C0065004400650073006300720069007000740069006F006E000000000072006500730074006F006F006C00730020002D00200069006E006E006F002000730065007400750070002000D263F64E2800346CB97E7972486529000000000036000B000100460069006C006500560065007200730069006F006E000000000032002C00200030002C00200030002C00200030000000000034000A00010049006E007400650072006E0061006C004E0061006D'
$code &= '0065000000770061007400650072006300740072006C0000004A00130001004C006500670061006C0043006F007000790072006900670068007400000043006F007000790072006900670068007400200028004300290020003200300030003800000000002800000001004C006500670061006C00540072006100640065006D00610072006B0073000000000044000E0001004F0072006900670069006E0061006C00460069006C0065006E0061006D0065000000770061007400650072006300740072006C002E0064006C006C00000020000000010050007200690076006100740065004200750069006C00640000004A0015000100500072006F0064007500630074004E0061006D0065000000000072006500730074006F006F006C00730020002D002000770061007400650072006300740072006C00000000003A000B000100500072006F006400750063007400560065007200730069006F006E00000032002C00200030002C00200030002C0020003000000000002000000001005300700065006300690061006C004200750069006C0064000000440000000100560061007200460069006C00650049006E0066006F00000000002400040000005400720061006E0073006C006100740069006F006E00000000000408B0044000008000000000000000000000470046000000000000'
$code &= '0008004D0053002000530061006E0073002000530065007200690066000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000001000008000000009304E302E321A36DD36F03610372B37603774378F37A237C637E73809393E395E39BB39E339F0391C3A643A713A8A3AC83AF93A333B593B783B813B9F3B803CB63CCB3CD53CEE3C1B3D343D633DF13D683EAA3EBC3ECE3EF93E0B3F1D3F483F5A3F6C3F7B3F813F953F9A3FC03FD43FDE3FEA3FFD3F000000200000C00100003A3044'
$code &= '30583067306D3078308B3091309F30A530AE30B430BC30C230D030E030EF30FF301C312B313831423149319231C1311A3220324732923230339533E533F33328346D34A134FE340A35123518351E3524352A35303536353C35423548354E3554355A35603566356C35723578357E3584358A35903596359C35A235A835AE35B435BA35C035C635CC35D235D835DE35E435EA35F035F635FC35023608360E3614361A36203626362C36323638363E3644364A36503656365C36623668366E3674367A36803686368C36923698369E36A436AA36B036B636BC36C236C836CE36D436DA36E036E636EC36F236F836FE3604370A37103716371C37223728372E3734373A37403746374C37523758375E3764376A377037763785379537A437CD37D937E337EF37283850388F38D73811392339643970397A39B039C239C839093A163A1D3A223A4F3A573A5D3A683A753A7D3A8B3A903A953A9A3AA53AB23ABC3AD13ADD3AE33A053B173B733B903B963B9C3BA23BA83BAE3BB43BBA3BC03BC63BCC3BD23BD83BDE3BE43BEA3BF03BF63BFC3B023C083C0E3C2B3C533C5D3C713C9D3CB13CC53CD93C063D323D453D593D6D3D813D00000030000084010000A832AC32B032B432B832BC32C032C432C832CC32D032D432D832DC32E032E432E832EC32F032F432F832FC320033043308330C33103314'
$code &= '333033343338333C334033443348334C335033543358335C336033643368336C337033743378337C338033843388338C339033943398339C33A033A433A833AC33B033B433B833BC33C033C433C833CC33D033D833DC33F4330C3424343C3454347034743478347C348034843488348C349034943498349C34A034A434A834AC34B034B434B834BC34C034C434C834CC34D034D434D834DC34E034E434E834EC34F034F434F834FC340035043508350C351035143518351C352035243528352C353035343538353C354035443548354C3554355835603578359035A835AC35B035C435D435D835E035F8350C361C36203630364C36543660367C3684368C369836A036D036DC36E436F0360C37183734373C3744374C375837743780379C37A837C437D037EC37F437FC37083824382C38343840385C38683884389038AC38B838D438000000400000180000000430083060307C308030A030C030F03000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
$code &= '00000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000000'
Return Binary($code)
EndFunc ;==>CtrlCode
配置文件:

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?加入

×

评分

参与人数 1金钱 +10 收起 理由
afan + 10 感谢主动将修改帖子分类为[已解决],请继续 ...

查看全部评分

发表于 2010-9-2 22:50:30 | 显示全部楼层
本帖最后由 yingf20 于 2010-9-2 22:53 编辑

这确实是个问题来的,本人也想学习一下,如果有高手经过就发表一下。
助人为乐嘛。不过楼主不发个INI文件配置出来吗?这样别人好对症下药。
发表于 2010-9-3 00:23:30 | 显示全部楼层
没细看,仅改了一小段~
代码还有很多优化的余地
Func all()
        Local $x = 0, $xx
        $ico = _GUIImageList_Create(24, 24, 5, 3) ;创建 ImageList 控件
        For $i1 = 2 To $TypeNumber ;从2循环到总类别数量
                $SubNumber = IniReadSection($Configfile, $Type[$i1][1] & ".list");读取分类数量
                _GUICtrlListView_InsertGroup($Listview[1], -1, $i1, $Type[$i1][1], 1) ;插入组
                ;MsgBox("4096", "测试图标列表", $SubNumber[0][0])
                For $i2 = 1 To $SubNumber[0][0];循环
                        $info1 = IniReadSection($Configfile, $SubNumber[$i2][1]);读取分类字段名
                        If Not FileExists(@ScriptDir & "\" & $info1[4][1]) Then ContinueLoop
                        $xx = _GUIImageList_AddIcon($ico, @ScriptDir & "\" & $info1[4][1], 0, True);添加图标到图像列表
                        _GUICtrlListView_SetImageList($Listview[1], $ico, 1) ;分配图像列表到第一个列表框
                        ;_GUICtrlListView_SetImageList($Listview[$i1], $ico, 1) ;分配图像列表到控件
                        _GUICtrlListView_AddItem($Listview[1], $SubNumber[$i2][1], 0) ;添加项目到列表的末尾
                        _GUICtrlListView_AddItem($Listview[$i1], $SubNumber[$i2][1], 0)
                        $index = _GUICtrlListView_FindInText($Listview[1], $SubNumber[$i2][1]) ;搜索包含指定文本的项目
                        $index1 = _GUICtrlListView_FindInText($Listview[$i1], $SubNumber[$i2][1])
                        _GUICtrlListView_SetItemGroupID($Listview[1], $index, $i1) ;设置项目组 ID
                        _GUICtrlListView_AddSubItem($Listview[1], $index, @ScriptDir & "\" & $info1[4][1], 1)
                        _GUICtrlListView_AddSubItem($Listview[$i1], $index1, @ScriptDir & "\" & $info1[4][1], 1)
                        _GUICtrlListView_AddSubItem($Listview[1], $index, $info1[5][1], 2) ;添加子项
                        _GUICtrlListView_AddSubItem($Listview[$i1], $index1, $info1[5][1], 2)
                        _GUICtrlListView_SetItemImage($Listview[1], $x, $xx)
                        $x += 1
                        If $info1[2][1] = 1 Then
                                _GUICtrlListView_SetItemChecked($Listview[1], $index, True)
                                _GUICtrlListView_SetItemChecked($Listview[$i1], $index1, True)
                        EndIf
                Next
        Next
        _GUICtrlListView_EnableGroupView($Listview[1]) ;启用或禁用控件项目分组
EndFunc   ;==>all
发表于 2010-9-3 09:11:28 | 显示全部楼层
本帖最后由 3mile 于 2010-9-3 09:15 编辑

CtrlCode()函数是干什么的?水波纹调用的DLL?
发表于 2010-9-3 09:19:23 | 显示全部楼层
二进制那些是做什么的???
发表于 2010-9-3 10:04:34 | 显示全部楼层
由于时间久远,我也记不太清代码的具体结构。不过当时好像就因为图标显示所以用了很多数组来堆放图标图像。卫兄应该和我当时遇到的情况一样。
卫兄现在的代码基本应该没有太大变化,只是读取执行文件的图标来代替专用的图标文件。我想应该是可行的,但有一个问题,对于自解压的执行文件图标几乎全是相同的。

AFan大人提出的If Not FileExists(@ScriptDir & "\" & $info1[4][1]) Then ContinueLoop应该是可行的,可以极大的提高效率。

看到AFan的这句代码让我想了很多,可不可以不用INI文件,或只用INI文件建立分组呢?具体的文件名、路径、以及图标文件完全交给搜索来完成(主要考虑是文件并不太多,搜索也就一两秒钟的事情)。

提供一段关于建立LISTVIEW图标的示例:
#include <GuiConstantsEx.au3>
#include <GuiListView.au3>
#include <GuiImageList.au3>
#include <WindowsConstants.au3>
#include <EditConstants.au3>
#include <file.au3>
#include <array.au3>

Global $hListView, $edit, $str

_filelist("d:\softinst\files");需要搜索的ICO图标文件
Global $icon_path = StringSplit($str, "|")

Func _filelist($searchdir)
        $search = FileFindFirstFile($searchdir & "\*.*")
        If $search = -1 Then Return -1 
        While 1
                $file = FileFindNextFile($search) 
                If @error Then 
                        FileClose($search) 
                        Return 
                ElseIf $file = "." Or $file = ".." Then 
                        ContinueLoop 
                ElseIf StringInStr(FileGetAttrib($searchdir & "\" & $file), "D") Then
                        _filelist($searchdir & "\" & $file) 
                EndIf 
                If StringInStr($file, '.ico') Then $str &= $searchdir & "\" & $file & "|"
        WEnd
EndFunc   ;==>_filelist

_Main()

Func _Main()

        Local $GUI, $hImage
        $GUI = GUICreate("(UDF Created) ListView Create", 400, 540)

        $edit = GUICtrlCreateEdit("", 2, 277, 394, 258, BitOR($WS_VSCROLL, $ES_AUTOVSCROLL))
        $hListView = _GUICtrlListView_Create($GUI, "", 2, 2, 394, 268)
        _GUICtrlListView_SetExtendedListViewStyle($hListView, BitOR($LVS_ICON, $LVS_EX_FULLROWSELECT, $LVS_EX_SUBITEMIMAGES))
        GUISetState()

        ; 加载图像
        $hImage = _GUIImageList_Create(25, 25)
        For $i = 1 To UBound($icon_path) - 1
                _GUIImageList_AddIcon($hImage, $icon_path[$i], 0, True)
        Next
        _GUICtrlListView_SetImageList($hListView, $hImage, 1)

        ; 添加列
        _GUICtrlListView_InsertColumn($hListView, 0, "Column 1", 100)
        _GUICtrlListView_InsertColumn($hListView, 1, "Column 2", 100)
        _GUICtrlListView_InsertColumn($hListView, 2, "Column 3", 100)

        ; 添加项
        For $i = 1 To UBound($icon_path) - 2
                _GUICtrlListView_AddItem($hListView, "Row 1: Col 1", $i - 1)
                _GUICtrlListView_AddSubItem($hListView, $i - 1, "Row 1: Col 2", 1)
                _GUICtrlListView_AddSubItem($hListView, $i - 1, "Row 1: Col 3", 2)
        Next
        Do
        Until GUIGetMsg() = $GUI_EVENT_CLOSE
        GUIDelete()
EndFunc   ;==>_Main
 楼主| 发表于 2010-9-3 13:17:41 | 显示全部楼层
回复 3# afan
感谢AFAN!
刚才测试了一下,在全部列表里有图标了,但在分类显示里没有!
发表于 2010-9-3 13:19:43 | 显示全部楼层
回复  afan
感谢AFAN!
刚才测试了一下,在全部列表里有图标了,但在分类显示里没有!
卫和谐 发表于 2010-9-3 13:17


那句我注释掉了~
 楼主| 发表于 2010-9-3 13:19:46 | 显示全部楼层
回复 4# 3mile

是调用AFAN水波的!
发表于 2010-9-3 13:26:01 | 显示全部楼层
local $code 那些数据是干什么的 ?可以在程序本身代码内声明要使用的图像数据编码么?再转换成图像?
 楼主| 发表于 2010-9-3 13:29:39 | 显示全部楼层
回复 8# afan

不注释掉也不行啊,刚才看了!你再看一下!
发表于 2010-9-3 13:36:02 | 显示全部楼层
回复 11# 卫和谐


    没时间理解原始思路,粗看了一下,貌似那个不应该由当前的图像列表分配
 楼主| 发表于 2010-9-3 13:43:01 | 显示全部楼层
回复 12# afan


前面创建按钮部分就好用,关键的几行,是循环读取的:
For $i1 = 1 To $TypeNumber
  $hImage = _GUIImageList_Create(30, 30, 5, 3)

_GUIImageList_AddIcon($hImage, @ScriptDir & "\files\Icon\" & $i1 & ".ico", 0, True)

_GUICtrlButton_SetImageList($Button[$i1], $hImage)
Next

后面的列表框就不知道问题出在哪里?
发表于 2010-9-3 13:46:04 | 显示全部楼层
回复 13# 卫和谐


    _GUICtrlListView_SetImageList($Listview[$i1], $ico, 1) ;分配图像列表到控件
你这句可是用的 $ico 图像列表,不是 $hImage 图像列表
 楼主| 发表于 2010-9-3 13:50:01 | 显示全部楼层
回复 14# afan

我是说的这个原理!不是说的这两个变量......
您需要登录后才可以回帖 登录 | 加入

本版积分规则

QQ|手机版|小黑屋|AUTOIT CN ( 鲁ICP备19019924号-1 )谷歌 百度

GMT+8, 2024-6-13 04:34 , Processed in 0.094117 second(s), 26 queries .

Powered by Discuz! X3.5 Licensed

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表