Include "Lpak.bb"
AppTitle "Pak资源打包工具 V1.0 - By Liu Haitao QQ:7552169"
SeedRnd (MilliSecs())
Global EditWindow
Global libListBox1
Global btnButton0
Global btnButton4
Global chbCheckBox0
Global grpGroupBox0
Global lblLabel0
Global lblLabel1
Global tfdTextField0
Global tfdTextField1
Global btnButton3
Global lblLabel2
Global grpGroupBox1
Global chbCheckBox1
Global lblLabel3
Global tfdTextField2
Global grpGroupBox2
Global tfdTextField3
Global folder$
Global tfdTextField4
Global dataname$="Mydata.pak"
EditWindow=CreateWindow(" Pak资源打包工具 V1.0 - By Liu Haitao QQ:7552169",300,200,571,380,0,17)
folder$=Left$(CurrentDir$(),Len(CurrentDir$())-1)
tfdTextField4=CreateTextField(8,18,280,20,EditWindow)
SetGadgetText tfdTextField4,folder$
libListBox1=CreateListBox(8,48,352,238,EditWindow)
mululist()
btnButton4=CreateButton("选择目录",296,16,64,22,EditWindow,1)
btnButton0=CreateButton("生成Pak资源文件",8,304,128,32,EditWindow,1)
chbCheckBox0=CreateButton("使用密匙",392,32,96,16,EditWindow,2)
lblLabel0=CreateLabel("文件密码:",384,64,64,16,EditWindow,0)
lblLabel1=CreateLabel("目录密码:",384,88,64,16,EditWindow,0)
tfdTextField0=CreateTextField(448,56,72,20,EditWindow)
SetGadgetText tfdTextField0,"12345678"
tfdTextField1=CreateTextField(448,80,72,20,EditWindow)
SetGadgetText tfdTextField1,"87654321"
btnButton3=CreateButton("生成新随机密码",408,112,112,24,EditWindow,1)
DisableGadget tfdTextField0
DisableGadget tfdTextField1
DisableGadget btnButton3
chbCheckBox1=CreateButton("为.EXE文件附加资源",392,192,132,16,EditWindow,2)
lblLabel3=CreateLabel("执行文件名称:",392,232,118,16,EditWindow,0)
tfdTextField2=CreateTextField(392,256,136,20,EditWindow)
SetGadgetText tfdTextField2,"Myfile.exe"
DisableGadget tfdTextField2
grpGroupBox0=CreateGroup( "密匙选项",376,8,168,144,EditWindow)
grpGroupBox1=CreateGroup( "EXE 附加资源选项",376,168,168,120,EditWindow)
grpGroupBox2=CreateGroup( "Pak资源库文件初始化代码",152,296,392,48,EditWindow)
tfdTextField3=CreateTextField(8,16,376,20,grpGroupBox2)
SetGadgetText tfdTextField3,"PakInit "+Chr(34)+"Mydata.Pak"+Chr(34)+", 0, "+Chr(34)+"TMP"+Chr(34)+", 0"
;-mainloop--------------------------------------------------------------
Repeat
id=WaitEvent()
Select id
Case $401 ; interacted with gadget
DoGadgetAction( EventSource() )
Case $803 ; close gadget
Exit
End Select
Forever
;-gadget actions--------------------------------------------------------
Function DoGadgetAction( gadget )
Select gadget
Case libListBox1 ; user selected treeview node
filename$=GadgetItemText$( libListBox1,SelectedGadgetItem(libListBox1))
Case btnButton0 ; user pressed button
PakOutputDir "C:\OutPutPakDemoDeleteMe"
ChangeDir folder$
PakBulkOverWrite = False
If ButtonState(chbCheckBox0) Then
n_st1=TextFieldText$(tfdTextField0)
n_st2=TextFieldText$(tfdTextField1)
CreatePakFile dataname$,n_st1,n_st2
Else
CreatePakFile dataname$,0,0
EndIf
num_item=CountGadgetItems( libListBox1 )
For i=0 To num_item-1
filename$=GadgetItemText$( libListBox1,i)
AddtoPak filename$
Next
CloseCreatedPak()
fileout = WriteFile(Left$(dataname$,Len(dataname$)-4)+".ini")
WriteLine( fileout, dataname$ )
WriteLine( fileout, "")
WriteLine( fileout,TextFieldText$(tfdTextField3))
WriteLine( fileout,"-------文件列表-------")
For i=0 To num_item-1
filename$=GadgetItemText$( libListBox1,i)
WriteLine( fileout, filename$)
Next
CloseFile( fileout )
Case chbCheckBox0 ; user changed checkbox
If ButtonState(chbCheckBox0) Then
EnableGadget tfdTextField0
EnableGadget tfdTextField1
EnableGadget btnButton3
st1=TextFieldText$(tfdTextField0)
st2=TextFieldText$(tfdTextField1)
SetGadgetText tfdTextField3,"PakInit "+Chr(34)+dataname$+Chr(34)+", "+st1+", "+Chr(34)+"TMP"+Chr(34)+", "+st2
Else
DisableGadget tfdTextField0
DisableGadget tfdTextField1
DisableGadget btnButton3
SetGadgetText tfdTextField3,"PakInit "+Chr(34)+dataname$+Chr(34)+", 0, "+Chr(34)+"TMP"+Chr(34)+", 0"
End If
Case chbCheckBox1 ; user changed checkbox
If ButtonState(chbCheckBox1) Then
EnableGadget tfdTextField2
Else
DisableGadget tfdTextField2
End If
Case btnButton4
folder$=RequestDir$( "请您选择将打打包的目录:" )
SetGadgetText tfdTextField4,folder$
mululist()
Case btnButton3 ; user pressed button
st1=Rand(10000000,99999999)
st2=Rand(10000000,99999999)
SetGadgetText tfdTextField0,st1
SetGadgetText tfdTextField1,st2
SetGadgetText tfdTextField3,"PakInit "+Chr(34)+dataname$+Chr(34)+", "+st1+", "+Chr(34)+"TMP"+Chr(34)+", "+st2
Case tfdTextField0
If EventData() = 13 Then ; user pressed return in textfield
EndIf
Case tfdTextField1
If EventData() = 13 Then ; user pressed return in textfield
EndIf
Case tfdTextField2
If EventData() = 13 Then ; user pressed return in textfield
EndIf
Case tfdTextField3
If EventData() = 13 Then ; user pressed return in textfield
EndIf
End Select
End FunctionFunction CreateGroup( label$, xpos,ypos, width,height, group, collapsable = False, active=1 )
cnv = CreateCanvas( xpos,ypos,width,height,group )
SetBuffer CanvasBuffer( cnv )
font = LoadFont("Tahoma",13 )
SetFont font
col=api_GetSysColor(15)
gadr=col And $ff
gadg=col Shr 8 And $ff
gadb=col Shr 16 And $ff
ClsColor gadr,gadg,gadb
Cls ;Color 70, 70, 70
Rect 0,6,width,height-6, 0
Rect 1,7,width-2,height-8, 0
Color 190,190,190
Rect 0,6,width-1,height-7, 0
Color gadr,gadg,gadb
Rect 4, 0, StringWidth( label$ ) + 8, StringHeight( label$ ), 1
Color 0,0,0
Text 8, 0, label$
FlipCanvas cnv
Return cnv
End Function
Function mululist()
myDir=ReadDir(folder$)
ClearGadgetItems libListBox1
While MoreFiles( myDir )
filename$=NextFile$(myDir)
If filename$<>"." And filename$<>".." And FileType(folder$+"\"+filename$) <> 2 Then
AddGadgetItem libListBox1,filename$
EndIf
Wend
CloseDir myDir
End Function
