home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Millennium Time Capsule
/
AC2000.BIN
/
disks
/
ac15disk
/
hbasic
/
exec3.bas
< prev
Wrap
BASIC Source File
|
1999-08-21
|
2KB
|
135 lines
REM $option k100
REM $option !gy
DEFINT a-z
LIBRARY "gemaes","gemdos"
REM $include gemaes.bh
FUNCTION GetWholeEnvironment$
STATIC i,res$,a$
res$=""
i=1
DO
a$=ENVIRON$(i)
IF a$="" THEN EXIT LOOP
res$=res$+a$+CHR$(0)
INCR i
LOOP
GetWholeEnvironment$=res$
END FUNCTION
FUNCTION killpath$ (path$)
STATIC i,ch
i=LEN(path$)
DO
ch=ASC(MID$(path$,i,1))
IF ch="\"% OR ch=":"% THEN EXIT LOOP
IF i=1 THEN EXIT LOOP
DECR i
LOOP
killpath$=LEFT$(path$,i)
END FUNCTION
FUNCTION killname$ (path$)
STATIC i,ch,dummy$
i=LEN(path$)
DO
ch=ASC(MID$(path$,i,1))
IF ch="\"% OR ch=":"% THEN EXIT LOOP
IF i=1 THEN EXIT LOOP
DECR i
LOOP
dummy$=RIGHT$(path$,i)
i=LEN(dummy$)
DO
ch=ASC(MID$(dummy$,i,1))
IF ch="."% THEN EXIT LOOP
IF i=1 THEN EXIT LOOP
DECR i
LOOP
killname$=LEFT$(dummy$,i-1)+" "
END FUNCTION
SUB Execute(nname$,commline$)
SHARED menutree&
STATIC junk&,junk,curhandle,i,curtop
STATIC dummypath1$,dummypath2$,dummydrive,pe,mxprogs
STATIC WindX,WindY,WindW,WindH,cur_top
mxprogs=PEEKW(PEEKL(GB+4)+ap_count)
pe=0
IF mxprogs=-1 THEN pe=100
junk=wind_get (0,WF_WORKXYWH,WindX,WindY,WindW,WindH)
junk=wind_get (0,WF_TOP,cur_top,0,0,0)
dummypath1$=killpath$ (nname$)
dummypath2$=CURDIR$
dummydrive=dgetdrv
junk=dsetdrv (ASC(MID$(dummypath1$,1,1))-ASC("A"))
CHDIR dummypath1$
junk&=pexec&(pe,nname$,commline$,GetWholeEnvironment$)
junk=dsetdrv (dummydrive)
CHDIR dummypath2$
junk=wind_set (0,WF_TOP,cur_top,0,0,0)
form_dial FMD_FINISH,0,0,0,0,WindX,WindY,WindW,WindH
END SUB
SUB va_send (to$,commline$)
STATIC a$,a&,c$,c&,i,junk
a$=SPACE$(16) : a&=VARPTR(a$)
'c$="H:\MODS\INTRO.MOD"+CHR$(0) : c&=VARPTR(c$)
c$=commline$+CHR$(0) : c&=VARPTR(c$)
i=appl_find(to$)
IF i=-1 THEN junk=form_alert (1,"[1][ VA server not found! ][ OK ]")
IF i<>-1 THEN
POKEW a&,&H4711
POKEW a&+2,PEEKW(PEEKL(GB+4)+4)
POKEW a&+4,0
POKEL a&+6,c&
POKEW a&+10,0
appl_write i,16,a&
END IF
END SUB
SUB ViewFileMulti (filename$,comm$)
STATIC mxprogs,editorva$,junk
mxprogs=PEEKW(PEEKL(GB+4)+ap_count)
IF filename$="" THEN
junk=form_alert (1,"[1][ No editor set! ][ OK ]")
ELSE
IF mxprogs=-1 THEN
editorva$=killname$ (filename$)
IF appl_find (editorva$)<>-1 THEN ' ie program already running
CALL va_send (editorva$,comm$)
ELSE
CALL Execute (filename$,comm$)
END IF
ELSE
CALL Execute (filename$,comm$)
END IF
END IF
END SUB
a$="D:\EVEREST\EVEREST.PRG"
b$="C:\EMAIL.TXT"
CALL ViewFileMulti (a$,b$)
er=form_alert (1,"[1][ Finished ][ OK ]")
STOP -1