another untested method i thought of was making one exe that had a string declared at the start, with a max amount of characters. This defines what level file it opens. Then, you can hex-edit your exe to change this string, as strings are unprotected in DBP ( i assume - they can be edited in DBC exes v. easily )
The only problem is making the string the same length. This can be done using a non-filename character. Heres some sample DBP code (untested):
leveltoopen$="levelname%%%%%%" : `=15 characters
actual$=""
`find out name of level
for i = 1 to 15
if mid$(leveltoopen$,i)<>"%" then actual$=actual$+mid$(leveltoopen$,i)
next i
openlevel(actual$) : `function call that will load level file and all files needed for it
okay. now once compiled, you should be able to open it in a hex editor to find the right byte where the string levelname%%%%%% starts. Then, write your other DBP program that compiles it to simply duplicate the other exe, open it as a file and edit the correct bytes to change this string!!! then twill be dandy.
more advanced people can make their level file format include all media using the "write fileblock" command, then you have an exectuable that can be distributed with the one other level file!!!
it seems DBPro can compile to exe after all