[REBOL] REBOL stand-alone applications? Re:
From: kracik:mbox:dkm:cz at: 4-Aug-2000 17:46
This is a multi-part message in MIME format.
--------------AA884A8894E2DC0069875E81
Content-Type: text/plain; charset=iso-8859-2
Content-Transfer-Encoding: 7bit
Hi,
There's a possibility to append your script after the REBOL executable,
at least Windows loader does not complain. But you must then run REBOL
with a long command line from a shortcut, not just rebol.exe.
First, make a directory, copy REBOL.exe, hide-script.r and the script
you want to hide (I use a random example dancelady.r) to that
directory. Then run hide-script.r - it will create a modified REBOL
executable and print a command line - copy it and paste into some
shortcut.
You can then delete dancelady.r file from disk - modified REBOL will
still run it.
Scripts and example shortcut (renamed, because Netscape Messenger
tries to follow it) are attached.
Hope this helps,
--
Michal Kracik
[newsletters--scanzoni--com] wrote:
> I would like to be able to put together an client side standalone
> application that uses REBOL - but
> I do not want to require the user to download the REBOL and see the scripts
> that make up the application.
>
> Is it possible to create a REBOL app that completely encapsulates the REBOL
> engine and hides the script(s)....
> And if so, how?
>
> - Scanzoni
--------------AA884A8894E2DC0069875E81
Content-Type: text/plain; charset=iso-8859-2;
name="dancelady.r"
Content-Transfer-Encoding: quoted-printable
Content-Disposition: inline;
filename="dancelady.r"
REBOL [
TITLE: "The Dance Lady"
AUTHOR: "Ralph Roberts, =A92000"
DATE: "13-Jan-2000"
PURPOSE: "console animation demo"
FILE: %dancelady.r]
print newline
print "^(1B)[10CPresenting the exotic"
print "^(1B)[10C MS. ASCII REBOLI"
print newline
print "^(1B)[12C .###. "
print "^(1B)[12C _#*_*#_) "
print "^(1B)[12C--(--/__\------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------/_/------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------\_\------"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C (_#*_*#_ "
print "^(1B)[12C-----/__\-)----"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C _#*_*#_) "
print "^(1B)[12C--(--/__\------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------/_/------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------\_\------"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C (_#*_*#_ "
print "^(1B)[12C-----/__\-)----"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C _#*_*#_) "
print "^(1B)[12C--(--/__\------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------/_/------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------\_\------"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C (_#*_*#_ "
print "^(1B)[12C-----/__\-)----"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C _#*_*#_) "
print "^(1B)[12C--(--/__\------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------/_/------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------\_\------"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C (_#*_*#_ "
print "^(1B)[12C-----/__\-)----"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C _#*_*#_) "
print "^(1B)[12C--(--/__\------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------/_/------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------\_\------"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C (_#*_*#_ "
print "^(1B)[12C-----/__\-)----"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C _#*_*#_) "
print "^(1B)[12C--(--/__\------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------/_/------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------\_\------"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C (_#*_*#_ "
print "^(1B)[12C-----/__\-)----"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C _#*_*#_) "
print "^(1B)[12C--(--/__\------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------/_/------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------\_\------"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C (_#*_*#_ "
print "^(1B)[12C-----/__\-)----"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C _#*_*#_) "
print "^(1B)[12C--(--/__\------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------/_/------"
print "^(1B)[12C _\ \_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C ___#*_*#___ "
print "^(1B)[12C------\_\------"
print "^(1B)[12C _/ /_ "
wait .2 prin "^(1B)[4A"
print "^(1B)[12C .###. "
print "^(1B)[12C (_#*_*#_ "
print "^(1B)[12C-----/__\-)----"
print "^(1B)[12C _/ /_ "
print [newline "^(1B)[10C**applause**applause***^/"]
print "^(1B)[12CNext Show 10 p.m."
--------------AA884A8894E2DC0069875E81
Content-Type: text/plain; charset=iso-8859-2;
name="hide-script.r"
Content-Transfer-Encoding: 7bit
Content-Disposition: inline;
filename="hide-script.r"
REBOL []
rebol-executable: read/binary %rebol.exe
original-length: length? rebol-executable
append rebol-executable read %dancelady.r
write/binary %modified-rebol.exe rebol-executable
print rejoin [ {modified-rebol.exe --do "do load to-string skip read/binary %modified-rebol.exe
} original-length {"} ]
--------------AA884A8894E2DC0069875E81
Content-Type: application/octet-stream;
name="modified-rebol.exe.lnk__"
Content-Transfer-Encoding: base64
Content-Disposition: attachment;
filename="modified-rebol.exe.lnk__"
TAAAAAEUAgAAAAAAwAAAAAAAAEa7AAAAIAAAAMB2Gf4A/r8BANjijJ79vwEACez+AP6/AZtt
AwAAAAAAAQAAAAAAAAAAAAAAAAAAAIwAFAAfD+BP0CDqOmkQotgIACswMJ0ZACNEOlwAAAAA
AAAAAAAAAAAAAAAAAK1cFwAxAAAAAAASJyOAEABSRUJPTC0yAAAYADEAAAAAAAQpxVMQAG1v
ZGlmaWVkAAAuADIAm20DAAQpF1UgAG1vZGlmaWVkLXJlYm9sLmV4ZQBNT0RJRkl+MS5FWEUA
AAB/AAAAHAAAAAMAAAAcAAAAMgAAADgAAABbAAAAFgAAAAMAAACTEr04EAAAAEdBTUVTAEQ6
XABUXCMAAAACAAAAFAAAAAAAAAAAAAIAXFxLUkFDSUtcZ2FtZXMAUkVCT0wtMlxtb2RpZmll
ZFxtb2RpZmllZC1yZWJvbC5leGUAFAAuAFwAbQBvAGQAaQBmAGkAZQBkAC0AcgBlAGIAbwBs
AC4AZQB4AGUAEwBEADoAXABSAEUAQgBPAEwALQAyAFwAbQBvAGQAaQBmAGkAZQBkAEQALQAt
AGQAbwAgACIAZABvACAAbABvAGEAZAAgAHQAbwAtAHMAdAByAGkAbgBnACAAcwBrAGkAcAAg
AHIAZQBhAGQALwBiAGkAbgBhAHIAeQAgACUAbQBvAGQAaQBmAGkAZQBkAC0AcgBlAGIAbwBs
AC4AZQB4AGUAIAAyADEAOQAxADMANgAiABAAAAAFAACgBQAAAC0AAAAAAAAA
--------------AA884A8894E2DC0069875E81--