#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 '------------------------------------------------------------------------------