home *** CD-ROM | disk | FTP | other *** search
/ DP Tool Club 22 / CD_ASCQ_22_0695.iso / win / fr / ectbarre / quickrun.ect < prev   
Text File  |  1995-03-21  |  5KB  |  228 lines

  1.   REM QUICKRUN.ECT - QUICK RUN (C) 1995 ECT SOFT
  2.   REM Lancement d'applications 
  3.   REM
  4.   REM Constantes
  5.   REM $Z = Fichier de gestion de l'ensemble des menus
  6.   REM $X = Fichier listing des programmes associes a l'application hote
  7.   REM $D = Nom de l'application hote 
  8.   REM $W = Menu particulier de l'application
  9.   $Z=GETDIR(!0)
  10.   $Z=CAT($Z,$MACROS\QR_SETUP.INI)
  11.   $D=PARENT()
  12.   $A=CAT($D,$.QRL)
  13.   $X=GETDIR(!0)
  14.   $X=CAT($X,$MACROS\)
  15.   $X=CAT($X,$A)
  16.   REM
  17.   REM Ouvrir le fichier contenant la liste des programmes
  18.   REM 
  19. :MAIN_MENU
  20.   !A = OPEN($X)
  21.   DEFINE($MenuFile,!A) 
  22.   REM
  23.   REM Creation du Menu de Selection, si plus de 9 items proposer un choix par liste
  24.   REM
  25.   !A=!0
  26.   FREE($W)
  27.   $W=$&Editer le menu de 
  28.   $W=CAT($W,$D)
  29.   $A = READ(MenuFile)
  30.   IF[LEN($A)]==!0
  31.   GOTO($:OUVRE_MENU)
  32.   $W=CAT($W,$|-|)
  33.   $W=CAT($W,$A)
  34.   $W=CAT($W,$|)
  35.    !A+=!1
  36. :LIT_ITEM_SUIVANT
  37.   $A = READ(MenuFile)
  38.   IF[LEN($A)]==!0
  39.   GOTO($:FIN_ITEM)
  40.   IF[!A]==!7
  41.   GOTO($:MAX_ITEM)
  42.   $W=CAT($W,$A)
  43.   $W=CAT($W,$|)
  44.   !A+=!1
  45.   GOTO($:LIT_ITEM_SUIVANT)
  46.   REM
  47.   REM  Il y a plus de 8 programmes
  48.   REM
  49. :MAX_ITEM
  50.   $W=CAT($W,$Autre ...)
  51.   !A+=!1
  52. :FIN_ITEM
  53.   !A+=!2
  54.   DEFINE($ID_QUITTER,!A)
  55.   REM
  56.   REM Le menu est construit
  57.   REM
  58. :OUVRE_MENU
  59.   $W=CAT($W,$|-|&Quitter)
  60.   !A = MENU($W)
  61.   IF[!A]==ID_QUITTER
  62.   GOTO($:QUITTER)
  63.   IF[!A]!=!9
  64.   GOTO($:TRADUIT_ITEM)
  65.   $A = LISTE($Executer ...,$X)
  66.   IF[LEN($A)]==!0
  67.   GOTO($:QUITTER)
  68.   GOTO($:EXECUTE)
  69.   REM
  70.   REM  Trouve le nom de l'item en fonction de son numero
  71.   REM
  72. :TRADUIT_ITEM
  73.   IF[!A]==!1
  74.   GOTO($:EDITEUR)
  75.   IF[!A]==ID_QUITTER
  76.   GOTO($:QUITTER)
  77.   !A-=!1
  78.   SSEEK(MenuFile,!0)
  79.   !B=!0
  80. :LIT_POUR_COMPARER
  81.   $B=READ(MenuFile)
  82.   IF[LEN($B)]==!0
  83.   GOTO($:QUITTER)
  84.   !B+=!1
  85.   IF[!B]==!A
  86.   GOTO($:FIN_POUR_COMPARER)
  87.   GOTO($:LIT_POUR_COMPARER)
  88. :FIN_POUR_COMPARER
  89.   $A=CAT($,$B) 
  90.   REM
  91.   REM  Executer le programme $A
  92.   REM
  93. :EXECUTE
  94.   $E=CAT($D,$.)
  95.   $E=CAT($E,$A)
  96.   $F = READINI($Z,$E,$Executable,$coucou ,!80)
  97.   $C = READINI($Z,$E,$Commande,$ ,!80)
  98.   EXECUTE($F,$C)
  99.   REM
  100.   REM                           Fin
  101.   REM
  102. :QUITTER
  103.   CLOSE(MenuFile)
  104.   END() 
  105. :EDITEUR
  106. !A=MENU($&Ajouter un programme|&Supprimmer un programme |&Modification|&Retour)
  107.   !A+=!1
  108.   GOTO(!A,$:OUVRE_MENU|:AJOUT_ITEM|:DEL_ITEM|:MODIF_ITEM|:MAIN_MENU)
  109.   REM
  110.   REM
  111.   REM                           Saisie d'un nouveau programme
  112.   REM
  113.   REM
  114.  :AJOUT_ITEM
  115.   $A=$ 
  116.   $B=$ 
  117.   $C=$ 
  118.   GOSUB($:NOM)
  119.   IF[LEN($A)]==FALSE
  120.   GOTO($:AUTRE_ITEM)
  121.   GOSUB($:EXECUTABLE)
  122.   IF[LEN($B)]==FALSE
  123.   GOTO($:AUTRE_ITEM)
  124.   GOSUB($:COMMANDE)
  125. :MISE_A_JOUR
  126.   REM $A = Nom du programme tel qu'il apparaitra dans la liste
  127.   REM $B = Nom de l'executable a lancer
  128.   REM $C = Ligne de commande
  129.   REM $D = Nom de l'application hote a qui sera associee le programme
  130.   REM Ecrire le nom du programme dans la liste associer .QAL
  131.   REM Ecrire cela dans le fichier QA_SETUP.INI qui sera utilise par QAR.ECT
  132.    !B=OPEN($X)
  133. :NEXT_LINE
  134.   $T=READ(!B)
  135.   IF[LEN($T)]==FALSE
  136.   GOTO($:END_FILE)
  137.   IF[CMP($A,$T)]==!0
  138.   GOTO($:PRESENT)
  139.   GOTO($:NEXT_LINE)
  140. :END_FILE
  141.   WRITE(!B,$A)
  142. :PRESENT
  143.   CLOSE(!B)
  144.   $E=CAT($D,$.)
  145.   $E=CAT($E,$A)
  146.   WRITEINI($Z,$E,$Executable,$B)
  147.   WRITEINI($Z,$E,$Commande,$C)
  148.   REM
  149.   REM
  150.   REM                                    Retour
  151.   REM
  152.   REM
  153. :AUTRE_ITEM
  154.   GOTO($:EDITEUR)
  155.   REM
  156.   REM
  157.   REM                                           Suppression d'un Programme
  158.   REM
  159.   REM
  160. :DEL_ITEM
  161.   $A=LISTE($Suppression          ,$X)
  162.   IF[LEN($A)]==!0
  163.   GOTO($:MAIN_MENU)
  164.   !B=OPEN($X)
  165.   $E=GETDIR(!0)
  166.   $E=CAT($E,$a.b)
  167.   !C=CREAT($E,!1)
  168. :LIT_FILE_X
  169.   $F=READ(!B)
  170.   IF[LEN($F)]==!0
  171.   GOTO($:FIN_FILE_X)
  172.   IF[CMP($F,$A)]!=!0
  173.   WRITE(!C,$F)
  174.   GOTO($:LIT_FILE_X)
  175. :FIN_FILE_X
  176.   CLOSE(!B)
  177.   CLOSE(!C)
  178.   $G=CAT($D,$.)
  179.   $G=CAT($G,$A)
  180.   WRITEINI($Z,$G,$NULL,$A)
  181.   DEL($X)
  182.   RENAME($E,$X)
  183.   GOTO($:MAIN_MENU)
  184.   REM
  185.   REM
  186.   REM                         Modification des parametres d'un programme
  187.   REM
  188.   REM
  189. :MODIF_ITEM
  190.   $A=LISTE($Modifier       ,$X)
  191.   IF[LEN($A)]==!0
  192.   GOTO($:MAIN_MENU)
  193.   $E=CAT($D,$.)
  194.   $E=CAT($E,$A)
  195.   $C=READINI($Z,$E,$Commande,$ ,!80)  
  196.   $B=READINI($Z,$E,$Executable,$ ,!80)
  197.   !A=MENU($Modifier le &Nom ...|&Modifier l'&executable ...|&Modifier la &commande)
  198.   IF[!A]==!0
  199.   GOTO($:EDITEUR)
  200.   GOSUB(!A,$:NOM|:EXECUTABLE|:COMMANDE)
  201.   GOTO($:MISE_A_JOUR)
  202.   REM
  203.   REM
  204.   REM                                           Saisi du Nom
  205.   REM
  206.   REM
  207. :NOM
  208.   $G=CAT($QUICK RUN ,$D)
  209.   $A=INPUT($G,$Nom du Programme,$A,FALSE,!30)
  210.   RETURN(!0)
  211.   REM
  212.   REM
  213.   REM                                              Saisi de l'Executable
  214.   REM
  215.   REM
  216. :EXECUTABLE
  217.   $B=OPENFILEDLG($Nom de l'executable,$Executables|*.EXE;*.PIF;*COM;*.BAT|,FALSE)
  218.   RETURN(!0)
  219.   REM
  220.   REM
  221.   REM                                            Saisi de la Commande
  222.   REM
  223.   REM
  224. :COMMANDE
  225.    $C=INPUT($A,$Ligne de Commande,$C,FALSE,!80)
  226.   RETURN(!0)
  227.  
  228.