File "UnpackDemo.bas"

Path: /ShuffleGUI/UnpackDemo/UnpackDemo.bas
File size: 6.93 KB
MIME-type:
Charset: utf-8

#COMPILE EXE
#DIM ALL

'TODO: cleaner way in CreateDemoShortcut() to point to vlc.exe

#INCLUDE ONCE "Win32Api.inc"
#INCLUDE ONCE "CreateShortcut.inc"

#RESOURCE "demo.pbr"

'------------------------------------------------------------------------------
FUNCTION PBMAIN () AS LONG

    IF COMMAND$ = "/kill" THEN
        KILL "img-rnd.exe"
        KILL "VLC Shortcut Play Folder.exe"
        KILL "Vidz\China.ico"
        KILL "Vidz\Paris.ico"
        KILL "Vidz\Wedding.ico"
        KILL "Vidz\China\test_1.mp4"
        KILL "Vidz\China\test_2.mp4"
        KILL "Vidz\China\test_3.mp4"
        RMDIR "Vidz\China"
        KILL "Vidz\Wedding\test_1.mp4"
        KILL "Vidz\Wedding\test_2.mp4"
        KILL "Vidz\Wedding\test_3.mp4"
        RMDIR "Vidz\Wedding"
        KILL "Vidz\Paris\test_1.mp4"
        KILL "Vidz\Paris\test_2.mp4"
        KILL "Vidz\Paris\test_3.mp4"
        RMDIR "Vidz\Paris"
        KILL "Vidz\Misc\test_3.mp4"
        KILL "Vidz\Misc\test_1.mp4"
        KILL "Vidz\Misc\test_2.mp4"
        RMDIR "Vidz\Misc"
        RMDIR "Vidz"
        KILL "Pics\Dinard.ico"
        KILL "Pics\MyDog.ico"
        KILL "Pics\Samuel.ico"
        KILL "Pics\Samuel\test_1.jpg"
        KILL "Pics\Samuel\test_2.jpg"
        KILL "Pics\Samuel\test_3.jpg"
        RMDIR "Pics\Samuel"
        KILL "Pics\Dinard\test_1.jpg"
        KILL "Pics\Dinard\test_2.jpg"
        KILL "Pics\Dinard\test_3.jpg"
        RMDIR "Pics\Dinard"
        KILL "Pics\MyDog\test_1.jpg"
        KILL "Pics\MyDog\test_2.jpg"
        KILL "Pics\MyDog\test_3.jpg"
        KILL "Pics\MyDog\test_4.jpg"
        RMDIR "Pics\MyDog"
        RMDIR "Pics"
        KILL "Dinard.lnk"
        KILL "MyDog.lnk"
        KILL "Samuel.lnk"
        KILL "China.lnk"
        KILL "Misc.lnk"
        KILL "Paris.lnk"
        KILL "Wedding.lnk"
        EXIT FUNCTION
    END IF

    MKDIR "Vidz"
    MKDIR "Pics"
    MKDIR "Vidz\Wedding"
    MKDIR "Vidz\China"
    MKDIR "Vidz\Paris"
    MKDIR "Vidz\Misc"
    MKDIR "Pics\Samuel"
    MKDIR "Pics\Dinard"
    MKDIR "Pics\MyDog"

    DUMPFILE "img-rnd.exe", RESOURCE$("EXE1")
    DUMPFILE "VLC Shortcut Play Folder.exe", RESOURCE$("EXE2")

    DUMPFILE "Vidz\China.ico", RESOURCE$("OBJ1")
    DUMPFILE "Vidz\Paris.ico", RESOURCE$("OBJ2")
    DUMPFILE "Vidz\Wedding.ico", RESOURCE$("OBJ3")
    DUMPFILE "Vidz\China\test_1.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\China\test_2.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\China\test_3.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Wedding\test_1.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Wedding\test_2.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Wedding\test_3.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Paris\test_1.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Paris\test_2.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Paris\test_3.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Misc\test_3.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Misc\test_1.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Vidz\Misc\test_2.mp4", RESOURCE$("OBJ4")
    DUMPFILE "Pics\Dinard.ico", RESOURCE$("OBJ13")
    DUMPFILE "Pics\MyDog.ico", RESOURCE$("OBJ14")
    DUMPFILE "Pics\Samuel.ico", RESOURCE$("OBJ15")
    DUMPFILE "Pics\Samuel\test_1.jpg", RESOURCE$("OBJ16")
    DUMPFILE "Pics\Samuel\test_2.jpg", RESOURCE$("OBJ17")
    DUMPFILE "Pics\Samuel\test_3.jpg", RESOURCE$("OBJ18")
    DUMPFILE "Pics\Dinard\test_1.jpg", RESOURCE$("OBJ19")
    DUMPFILE "Pics\Dinard\test_2.jpg", RESOURCE$("OBJ20")
    DUMPFILE "Pics\Dinard\test_3.jpg", RESOURCE$("OBJ21")
    DUMPFILE "Pics\MyDog\test_1.jpg", RESOURCE$("OBJ22")
    DUMPFILE "Pics\MyDog\test_2.jpg", RESOURCE$("OBJ23")
    DUMPFILE "Pics\MyDog\test_3.jpg", RESOURCE$("OBJ24")
    DUMPFILE "Pics\MyDog\test_4.jpg", RESOURCE$("OBJ25")

    CreateDemoShortcut EXE.PATH$ + "Pics\Dinard"
    CreateDemoShortcut EXE.PATH$ + "Pics\MyDog"
    CreateDemoShortcut EXE.PATH$ + "Pics\Samuel"
    CreateDemoShortcut EXE.PATH$ + "Vidz\China"
    CreateDemoShortcut EXE.PATH$ + "Vidz\Misc"
    CreateDemoShortcut EXE.PATH$ + "Vidz\Paris"
    CreateDemoShortcut EXE.PATH$ + "Vidz\Wedding"

    ?"Demo unpacked!"+$CR+$CR+"Click OK to load it in ShuffleGUI", %MB_ICONINFORMATION, EXE.NAME$

    LOCAL lRes AS LONG
    lRes = SHELL("ShuffleGUI.exe")

END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
FUNCTION RESOURCE$(BYVAL rid AS STRING)
    LOCAL L1, L2 AS LONG
    LOCAL D1, D2 AS DWORD

    L1 = FindResource  (GetModuleHandle(""), (rid), BYVAL %RT_RCDATA)
    D2 = SizeofResource(GetModuleHandle(""), L1)
    L2 = LoadResource  (GetModuleHandle(""), L1)
    D1 = LockResource  (L2)

    FUNCTION = PEEK$(D1,D2)
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
SUB DUMPFILE(BYVAL fi AS STRING, BYVAL buf AS STRING)
    LOCAL ff AS LONG
    ff = FREEFILE
    KILL fi
    OPEN fi FOR BINARY AS #ff
    PUT$ #ff, buf
    CLOSE #ff
END SUB
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
FUNCTION FirstFileIn(BYVAL folder AS STRING) AS STRING
    LOCAL file AS STRING
    folder = RTRIM$(folder,"\") + "\"
    file = DIR$(folder + "*.*")
    DIR$ CLOSE
    FUNCTION = folder + file
END FUNCTION
'------------------------------------------------------------------------------

'------------------------------------------------------------------------------
SUB CreateDemoShortcut(BYVAL folder AS STRING)
    LOCAL sc, ico, x, cl AS STRING

    ' Define target shortcut path
    sc = EXE.PATH$ + PATHNAME$(NAME,folder) + ".lnk"
    KILL sc
    ' Define icon
    IF sc <> "Misc.lnk" THEN ico = folder + ".ico"
    ' Define executable and command line
    IF INSTR(folder, "Pics") > 0 THEN
        x = EXE.PATH$ + "img-rnd.exe"
        cl = ""
    ELSE
        x = $DQ + "C:\Program Files (x86)\VideoLAN\VLC\vlc.exe" + $DQ
        cl = "--random " + $DQ + folder + $DQ
    END IF
    ' Create shortcut
    CreateShortcut _
      sc,  _                                ' 1. the link file to be created
      x,                                  _ ' 2. the file/document where the shortcut should point to
      cl,                                 _ ' 3. command-line parameters
      folder,                             _ ' 4. the folder where the executable file should start in
      %SW_SHOW,                           _ ' 5. %SW_SHOW, %SW_HIDE etc.
      ico,                                _ ' 6. icon file or executable file containing an icon
      0,                                  _ ' 7. icon index in the aforementioned file
      ("(c) mougino.free.fr 2024")          ' 8. any comment (stored in the shortcut)
END SUB
'------------------------------------------------------------------------------