>Hello Lutz,
>
>I agree that macros can open a big hole. For protection, we compile and encrypt all external custom programs (fxp) before storing them in disk to make it more difficult to take control by simply replacing one fxp with another.
>
>We actually have an internal function that does exactly what Walter suggests, but the called macro still does not see the internal table. I expected it would see the internal table, but perhaps
>
>Alex
>
>
>MyComando("USE xxxx IN 0")
>
>FUNCTION MyComando
>PARAMETERS tcComando
>tcComando = TRIM(tcComando)
>&tcComando
>RETURN
>
>
>Alex
Hello Alejandro,
but I can see all in context
test.prg (somewhere on disk, just a plain file:
AMEMBERS(laScreen,_screen,3,"PHGNUCIBR#")
DISPLAY MEMORY TO FILE xMemo.txt NOCONSOLE
DISPLAY STATUS TO FILE xMemo.txt NOCONSOLE ADDITIVE
then
MyComando("DO test.prg")
if it will not run the prg directly:
MyComando("COMPILE test.prg")
MyComando("DO test.fxp")
or
MyComando([PUBLIC pExtraVar])
MyComando([pExtraVar='AMEMBERS(laScreen,_screen,3,"PHGNUCIBR#")'])
MyComando([pExtraVar=pExtraVar+'DISPLAY MEMORY TO FILE xMemo.txt NOCONSOLE'])
MyComando([pExtraVar=pExtraVar+'DISPLAY STATUS TO FILE xMemo.txt NOCONSOLE ADDITIVE'])
MyComando([EXECSCRIPT(pExtraVar)])
MyComando([RELEASE pExtraVar])
look at the file on disc
create an object from a self defined vcx? Imagine the posibilities.
Be paranoid. It pays.
Words are given to man to enable him to conceal his true feelings.
Charles Maurice de Talleyrand-Périgord
Weeks of programming can save you hours of planning.
OffThere is no place like [::1]