; ------------------------------------------- ; Title: Upx Gui ; Version: 1.0 ; PB Ver: 4.00 ; ; About: ; A simple GUI for UPX. ; ------------------------------------------- Enumeration ;-Enumerate gadgets #Path #Browse #Level #Compress #Decompress #About EndEnumeration LoadFont(0,"Arial",8,#PB_Font_Bold) ;-Open window OpenWindow(0, 0, 0, 320, 55, "Simple Upx Gui v1.0", #PB_Window_SystemMenu | #PB_Window_TitleBar | #PB_Window_ScreenCentered ) CreateGadgetList(WindowID(0)) SetGadgetFont(TextGadget(#PB_Any,5,8,25,20,"Exe:"),FontID(0)) StringGadget(#Path, 30, 5, 190, 20, "") ButtonGadget(#Browse, 225, 5, 60, 20, "Browse") SetGadgetFont(TextGadget(#PB_Any,5,33,120,20,"Compression level:"),FontID(0)) ComboBoxGadget(#Level, 120, 30, 60, 200) ButtonGadget(#Compress, 185, 30, 60, 20, "Compress") ButtonGadget(#About, 290, 5, 20, 20, "?") ButtonGadget(#Decompress, 250, 30, 65, 20, "Decompress") ;-Add levels For Level=1 To 9 AddGadgetItem(#Level,-1,"Level "+Str(Level)) Next AddGadgetItem(#Level,-1,"Best") AddGadgetItem(#Level,-1,"Insane") SetGadgetState(#Level,9) Repeat WindowEvent = WaitWindowEvent() Select WindowEvent Case #PB_Event_Gadget Select EventGadget() Case #About MessageRequester("About","Simple Upx Gui" ,#MB_ICONINFORMATION) Case #Browse ;-Browse SetGadgetText(#Path,OpenFileRequester("Select executable:","","Executable (*.exe)|*.exe",0)) Case #Decompress If RunProgram("upx.exe", "-d " + GetGadgetText(#Path), "") Case #Compress ;-Compress If GetGadgetText(#Path) > "" And FileSize(GetGadgetText(#Path)) > 0 Select GetGadgetState(#Level) Case 0 To 8 Parameter$ = "-"+Str(GetGadgetState(#Level)+1)+" " Case 9 Parameter$ = "--best " Case 10 Parameter$ = "--brute " EndSelect OldSize = FileSize(GetGadgetText(#Path)) If RunProgram("upx.exe",Parameter$+Chr(34)+GetGadgetText(#Path)+Chr(34),"",#PB_Program_Wait) If Oldsize = FileSize(GetGadgetText(#Path)) MessageRequester("Warning","File was not compressed, maybe it's allready compressed?",#MB_ICONWARNING) Else MessageRequester("Done","Old size: "+Str(OldSize)+#CRLF$+"New size: "+Str(FileSize(GetGadgetText(#Path))),#MB_ICONINFORMATION) EndIf Else MessageRequester("Warning","Can't open UPX, the UPX executable must be in the same directory as UPX GUI!",#MB_ICONWARNING) EndIf Else MessageRequester("Error","No file selected!",#MB_ICONWARNING) EndIf EndSelect EndSelect Until WindowEvent = #PB_Event_CloseWindow