home *** CD-ROM | disk | FTP | other *** search
-
- 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