home *** CD-ROM | disk | FTP | other *** search
/ Millennium Time Capsule / AC2000.BIN / disks / ac15disk / hbasic / exec1.bas next >
BASIC Source File  |  1999-08-21  |  1KB  |  71 lines

  1.  
  2. REM $option k100
  3. REM $option !gy
  4.  
  5. DEFINT a-z
  6.  
  7. LIBRARY "GEMAES","GEMDOS"
  8.  
  9. REM $include gemaes.bh
  10.  
  11. FUNCTION GetWholeEnvironment$
  12. STATIC i,res$,a$
  13. res$=""
  14. i=1
  15. DO
  16.     a$=ENVIRON$(i)
  17.     IF a$="" THEN EXIT LOOP
  18.     res$=res$+a$+CHR$(0)
  19.     INCR i
  20. LOOP
  21. GetWholeEnvironment$=res$
  22. END FUNCTION
  23.  
  24. FUNCTION killpath$ (path$)
  25. STATIC i,ch
  26. i=LEN(path$)
  27. DO
  28.     ch=ASC(MID$(path$,i,1))
  29.     IF ch="\"% OR ch=":"% THEN EXIT LOOP
  30.     IF i=1 THEN EXIT LOOP
  31.     DECR i
  32. LOOP 
  33. killpath$=LEFT$(path$,i)
  34. END FUNCTION
  35.  
  36. FUNCTION Execute(nname$,commline$)
  37. SHARED menutree&
  38. STATIC junk&,junk,curhandle,i,curtop
  39. STATIC dummypath1$,dummypath2$,dummydrive,pe,mxprogs
  40. STATIC WindX,WindY,WindW,WindH,cur_top
  41.  
  42. mxprogs=PEEKW(PEEKL(GB+4)+ap_count)
  43. pe=0
  44. IF mxprogs=-1 THEN pe=100
  45.  
  46. junk=wind_get (0,WF_WORKXYWH,WindX,WindY,WindW,WindH)
  47. junk=wind_get (0,WF_TOP,cur_top,0,0,0)
  48.  
  49. dummypath1$=killpath$ (nname$)
  50. dummypath2$=CURDIR$
  51. dummydrive=dgetdrv
  52.  
  53. junk=dsetdrv (ASC(MID$(dummypath1$,1,1))-ASC("A"))
  54. CHDIR dummypath1$
  55.  
  56. junk&=pexec&(pe,nname$,commline$,GetWholeEnvironment$)
  57. execute=junk&
  58.  
  59. junk=dsetdrv (dummydrive)
  60. CHDIR dummypath2$
  61.  
  62. junk=wind_set (0,WF_TOP,cur_top,0,0,0)
  63. form_dial FMD_FINISH,0,0,0,0,WindX,WindY,WindW,WindH
  64.  
  65. END FUNCTION
  66.  
  67. a$="D:\EVEREST\EVEREST.PRG"
  68. er=form_alert (1,"[1][ Press OK to run... ][ OK ]")
  69. stat=execute (a$,"")
  70. er=form_alert (1,"[1][ Program ended | Returned "+STR$(stat)+" ][ OK ]")
  71. STOP -1