home *** CD-ROM | disk | FTP | other *** search
/ PC & Mediji 1999 May / PCM_9905.iso / talk2me / setup.ms_ / setup.ms
Encoding:
Text File  |  1998-12-15  |  28.9 KB  |  836 lines

  1. '-------------------------------------------
  2. '$INCLUDE 'setupapi.inc'
  3. '$INCLUDE 'MSDETECT.INC'
  4.  
  5. CONST   APPLI_NAME$             =       "Talk to Me"
  6. ''CONST   APPLI_NAME$           =       "Speak Fluent Spanish"
  7.  
  8. CONST   FILE_NAME$              =       "TALKTOME"
  9. ''CONST   FILE_NAME$            =       "SPEAK"
  10.  
  11. CONST   DEFAULT_LANGUAGE$       =       "19"                     '' Langue par dΘfaut (anglais:1, franτais:2...)
  12. CONST   MIN_SPACE&              =       20000000                '' Espace disque requis
  13.  
  14. '' Les constantes suivantes doivent Ωtre "" pour prendre leur valeur par dΘfaut
  15. CONST   DEF_ICON_NAME$          =       ""      '' Nom apparaissant sous l'ic⌠ne dans le gest de pgm.
  16.  
  17. CONST   DEFAULT_PATH$           =       ""      '' Rep. par dΘfault - ou "" pour auto
  18. ''CONST   DEFAULT_PATH$         =       "C:\GSP\SPEAK\"         '' Rep. par dΘfault - ou "" pour auto
  19.  
  20. CONST   DEF_GROUP_NAME$         =       ""      '' Groupe de programme dans lequel les ic⌠nes sont inclues
  21. ''CONST   DEF_GROUP_NAME$       =       "GSP STAR Collection"   '' Groupe de programme dans lequel les ic⌠nes sont inclues
  22.  
  23. CONST   TITLE$                  =       ""                      '' Titre setup
  24. ''Japanese: CONST   TITLE$                  =       "Talk to Me âZâbâgâAâbâv"
  25.  
  26.  
  27. CONST   TRACK                   =       0  ''suivi de l'ΘlΦve
  28. CONST   UNINSTALL               =       1  ''Procedure de dΘsinstallation
  29. CONST   TUTORIAL                =       1  ''Didactitiel
  30.  
  31. CONST   CHOOSE_LANG             =       0  ''Choix de la langue de l'utilisateur
  32. CONST   ONLY_SEL_LANG           =       1  ''Copie seulement le support de la langue Utilisateur choisie sur le disque (HLP & dicos)
  33. CONST   UTILISE_LAN             =       1  ''Utilises les LAN ou non
  34. CONST   INSTALL_DICO            =       0  ''Installation des options (dico...)
  35.  
  36. CONST   CHOOSE_LEVEL            =       1  ''Choix du niveau de tolΘrance minimum/par dΘfaut
  37. CONST   CHOOSE_DEST_PATH        =       1  ''Choix du rΘpertoire de destination
  38. CONST   CHOOSE_COURSE_PATH      =       1  ''Choix du rΘpertoire o∙ se trouvent les cours
  39.  
  40. CONST   VIDEO_DRV               =       1  ''Installation des drivers Video for Windows
  41.  
  42. CONST   LH_TECHNO               =       1  ''Support technologie L&H
  43. CONST   SCOTT_TECHNO            =       0  ''Support technologie Scott
  44.  
  45. CONST   INTRO_MIDI              =       1  ''Installe Fichiers intro*.MID
  46. CONST   INTRO_WAV               =       0  ''Installe Fichiers intro*.WAV
  47. CONST   PLAY_INTRO              =       0  ''Joue la musique d'intro ?
  48.  
  49. ''Options liees a la langue d'interface installee
  50. CONST MAX_LANGUE = 19
  51. GLOBAL LangueChoisie
  52. GLOBAL Langue           (MAX_LANGUE) AS STRING   ''Langue utilisee
  53. GLOBAL FichierLAN       (MAX_LANGUE) AS STRING   ''Nom du fichier LAN (3 lettres)
  54. GLOBAL RubriqueInf      (MAX_LANGUE) AS STRING   ''Rubrique contenant dicos, lans...
  55. GLOBAL RepDidacticiel   (MAX_LANGUE) AS STRING   ''Repertoire du didacticiel
  56. GLOBAL IconeDidacticiel (MAX_LANGUE) AS STRING   ''Nom de l'icone du didacticiel
  57. GLOBAL IconeUnInstall   (MAX_LANGUE) AS STRING   ''Nom de l'icone de l'uninstall
  58. GLOBAL IconeSuivi       (MAX_LANGUE) AS STRING   ''Nom de l'icone du suivi
  59.  
  60. ''Options de configuration
  61. GLOBAL  REP_DEST$
  62. GLOBAL  REP_COURS$
  63. GLOBAL    OPT_NIV$
  64. GLOBAL  REP_SUIVI$
  65. GLOBAL  OPT_SUIVI$
  66.  
  67. CONST   WELCOME                 =   100
  68. CONST   DESTPATH                =   300
  69. CONST   EXITFAILURE             =   400
  70. CONST   EXITQUIT                =   600
  71. CONST   EXITSUCCESS             =   700
  72. CONST   EXITSUCCESS_RELANCE     =   750
  73. CONST   OPTIONS                 =   800
  74. CONST   APPHELP                 =   900
  75. CONST   TOOBIG                  =  6300
  76. CONST   BADPATH                 =  6400
  77. CONST   OPTIONS_LANGUES         =  6401
  78. CONST   DESTPATH_COURSES        =  6402
  79. CONST   DESTPATH_SUIVI          =  6403
  80.  
  81. DECLARE FUNCTION ShowWindow     LIB "user.exe" (hWnd%,iShow%) AS INTEGER
  82. DECLARE FUNCTION SetWindowLong  LIB "user.exe" (hWnd%, offset%, style&) AS LONG
  83. Const WS_VISIBLE = &H10000000
  84. Const WS_CLIPCHILDREN = &H2000000
  85. Const WS_BORDER = &H800000
  86. Const SW_SHOWMAXIMIZED = 3
  87. CONST GWL_STYLE =-16
  88.  
  89. GLOBAL     CUIDLL$
  90. GLOBAL    HELPPROC$
  91.  
  92. DECLARE FUNCTION CheminApplication ( ) AS STRING
  93. DECLARE FUNCTION CheminCours ( )       AS STRING
  94. DECLARE FUNCTION CheminSuivi ( )       AS STRING
  95.  
  96. DECLARE FUNCTION OptionNiveau ( ) AS STRING
  97. DECLARE FUNCTION OptionLangue ( ) AS STRING
  98.  
  99. DECLARE SUB      InitialisationTableauxLangue
  100. DECLARE SUB      Initialisation
  101. DECLARE SUB      CopieDesFichiers
  102. DECLARE SUB      ConfigurerApplication
  103.  
  104. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  105. DECLARE SUB      MauvaisChemin 
  106.  
  107. '-----------------------------------------------------
  108. INIT:
  109. ''Initialisations
  110.     InitialisationTableauxLangue
  111.     Initialisation
  112.  
  113. WELCOME:
  114.     sz$ = UIStartDlg(CUIDLL$, WELCOME, "FInfoDlgProc", APPHELP, HELPPROC$)
  115.     IF sz$ = "CONTINUE" THEN
  116.         UIPop 1
  117.     ELSE
  118.         ERROR STFQUIT
  119.         GOTO QUIT 
  120.     END IF
  121.  
  122. ''Choix du repertoire de destination
  123. LAB_DEST_AVANCE:
  124.     IF CHOOSE_DEST_PATH=0 THEN
  125.         GOTO LAB_CHECK
  126.     END IF
  127.  
  128. LAB_DEST_RECULE:
  129.     IF CHOOSE_DEST_PATH=0 THEN
  130.         GOTO WELCOME
  131.     END IF
  132.  
  133. LAB_DEST:
  134.     sz$ = CheminApplication()
  135.     IF sz$ = "BACK" THEN
  136.         GOTO WELCOME
  137.     ELSEIF sz$ = "ERREUR" THEN
  138.         ERROR STFQUIT
  139.         GOTO QUIT
  140.     END IF
  141.  
  142. LAB_CHECK:
  143.     taille& =  GetFreeSpaceForDrive(MID$(REP_DEST$, 1, 1))
  144.     IF (taille < MIN_SPACE&) THEN ''Moins de 20Mo de place
  145.         sz$ = UIStartDlg(CUIDLL$, TOOBIG, "FInfoDlgProc", APPHELP, HELPPROC$)
  146.         IF sz$ = "CONTINUE" THEN
  147.             UIPop 1
  148.         ELSEIF sz$ = "BACK" THEN
  149.             UIPop 1
  150.             GOTO LAB_DEST
  151.         ELSE
  152.             ERROR STFQUIT
  153.             GOTO QUIT 
  154.         END IF
  155.     END IF
  156.                 
  157. ''Choix du repertoire pour les cours
  158. LAB_COURS_AVANCE:
  159.     IF CHOOSE_COURSE_PATH=0 THEN
  160.         GOTO LAB_OPT_NIV_AVANCE
  161.     END IF
  162.  
  163. LAB_COURS_RECULE:
  164.     IF CHOOSE_COURSE_PATH=0 THEN
  165.         GOTO LAB_DEST_RECULE
  166.     END IF
  167.  
  168. LAB_COURS:
  169.     sz$ = CheminCours()
  170.     IF sz$ = "BACK" THEN
  171.         GOTO LAB_DEST_RECULE
  172.     ELSEIF sz$ = "ERREUR" THEN
  173.         ERROR STFQUIT
  174.         GOTO QUIT
  175.     END IF
  176.  
  177. ''Choix du niveau de seuil de tolerance
  178. LAB_OPT_NIV_AVANCE:
  179.     IF CHOOSE_LEVEL=0 THEN
  180.         GOTO LAB_OPT_LAN_AVANCE
  181.     END IF
  182.  
  183. LAB_OPT_NIV_RECULE:
  184.     IF CHOOSE_LEVEL=0 THEN
  185.         GOTO LAB_COURS_RECULE
  186.     END IF
  187.  
  188. LAB_OPT_NIV:
  189.     sz$ = OptionNiveau()
  190.     IF sz$ = "BACK" THEN
  191.         GOTO LAB_COURS_RECULE
  192.     ELSEIF sz$ = "ERREUR"   THEN
  193.         ERROR STFQUIT
  194.         GOTO QUIT
  195.     END IF
  196.  
  197. ''Choix de la langue d'interface
  198. LAB_OPT_LAN_AVANCE:
  199.     IF CHOOSE_LANG=0 THEN
  200.         GOTO LAB_SUIVI_AVANCE
  201.      END IF
  202.  
  203. LAB_OPT_LAN_RECULE:
  204.     IF CHOOSE_LANG=0 THEN
  205.         GOTO LAB_OPT_NIV_RECULE
  206.     END IF
  207.  
  208. LAB_OPT_LAN:
  209.     sz$ = OptionLangue()
  210.     IF sz$ = "BACK" THEN
  211.         GOTO LAB_OPT_NIV_RECULE
  212.     ELSEIF sz$ = "ERREUR" THEN
  213.         ERROR STFQUIT
  214.         GOTO QUIT
  215.     END IF
  216.  
  217. ''Choix des informations du suivi
  218. LAB_SUIVI_AVANCE:
  219.     IF TRACK=0 THEN
  220.         GOTO LAB_GO
  221.     END IF
  222.  
  223. LAB_SUIVI:
  224.     sz$ = CheminSuivi()
  225.     IF sz$ = "BACK" THEN
  226.         GOTO LAB_OPT_LAN_RECULE
  227.     ELSEIF sz$ = "ERREUR" THEN
  228.         ERROR STFQUIT
  229.         GOTO QUIT
  230.     END IF
  231.  
  232.  
  233. LAB_GO:
  234. ''Lancement de la copie des fichiers
  235.     CopieDesFichiers 
  236.     
  237. ''Configuration fichier INI et groupe de programme
  238.     ConfigurerApplication 
  239.  
  240. QUIT:
  241.     ON ERROR GOTO ERRQUIT
  242.  
  243.     IF ERR = 0 THEN
  244.         IF Relance = 1 THEN
  245.             dlg% = EXITSUCCESS_RELANCE
  246.         ELSE
  247.             dlg% = EXITSUCCESS
  248.         ENDIF
  249.     ELSEIF ERR = STFQUIT THEN
  250.         dlg% = EXITQUIT
  251.     ELSE
  252.         dlg% = EXITFAILURE
  253.     END IF
  254. QUITL1:
  255.     sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  256.     IF sz$ = "REACTIVATE" THEN
  257.         GOTO QUITL1
  258.     END IF
  259.     UIPop 1
  260.  
  261.     END
  262.  
  263. ERRQUIT:
  264.     i% = DoMsgBox("Setup sources were corrupted, call (33) (1) 30 64 92 92!", "Setup Message", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  265.     END
  266. '----------------------------------------------------------------------------------------                       
  267.  
  268.  
  269.  
  270.  
  271. '*************************************************************************
  272. SUB CopieDesFichiers () STATIC
  273.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  274.     CreateDir REP_DEST$, cmoNone
  275.  
  276.     ''Copier les fichiers a mettre dans le repertoire de l'application
  277.     AddSectionFilesToCopyList "Files", SrcDir$, REP_DEST$
  278.  
  279.     IF SCOTT_TECHNO=1 THEN
  280.         AddSectionFilesToCopyList "Systems Files 2",  SrcDir$, REP_DEST$
  281.     ENDIF
  282.  
  283.     IF LH_TECHNO=1 THEN 
  284.         AddSectionFilesToCopyList "Systems Files 1",  SrcDir$, REP_DEST$
  285.     ENDIF
  286.  
  287.     ''Installation des aides, fichiers LAN et dicos
  288.     IF ONLY_SEL_LANG=1 THEN
  289.         AddSectionFilesToCopyList RubriqueInf$(LangueChoisie)+" support",  SrcDir$, REP_DEST$
  290.         IF UTILISE_LAN=1 THEN
  291.             AddSectionFilesToCopyList RubriqueInf(LangueChoisie)+" LAN",  SrcDir$, REP_DEST$
  292.         ENDIF
  293.         IF INSTALL_DICO  = 1 THEN
  294.             AddSectionFilesToCopyList RubriqueInf(LangueChoisie)+" options",  SrcDir$, REP_DEST$
  295.         END IF
  296.     ELSE
  297.         FOR i%=1 TO MAX_LANGUE STEP 1
  298.             AddSectionFilesToCopyList RubriqueInf(i%)+" support",  SrcDir$, REP_DEST$
  299.             IF UTILISE_LAN=1 THEN
  300.                 AddSectionFilesToCopyList RubriqueInf(i%)+" LAN",  SrcDir$, REP_DEST$
  301.             ENDIF
  302.             IF INSTALL_DICO  = 1 THEN
  303.                 AddSectionFilesToCopyList RubriqueInf(i%)+" options",  SrcDir$, REP_DEST$
  304.             END IF
  305.         NEXT i%
  306.     ENDIF
  307.  
  308.     ''Suivi de l'eleve
  309.     IF TRACK=1 THEN
  310.         AddSectionFilesToCopyList "Tracking option",  SrcDir$, REP_DEST$
  311.     END IF
  312.  
  313.     ''Musiques d'introduction
  314.     IF INTRO_WAV=1 THEN
  315.         AddSectionFilesToCopyList "Intro WAV",  SrcDir$, REP_DEST$
  316.     END IF
  317.     IF INTRO_MIDI=1 THEN
  318.         AddSectionFilesToCopyList "Intro MIDI",  SrcDir$, REP_DEST$
  319.     END IF
  320.  
  321.     ''Video for Windows
  322.     IF VIDEO_DRV=1 THEN
  323.         WINSYS$ = GetWindowsSysDir()
  324.         AddSectionFilesToCopyList "Video for Windows Files", SrcDir$, WINSYS$
  325.     ENDIF
  326.  
  327.     ''Copie des fichiers
  328.     CopyFilesInCopyList
  329. END SUB
  330. '*************************************************************************
  331.  
  332.  
  333. '*************************************************************************
  334. SUB ConfigurerApplication () STATIC
  335.  
  336.     IF DEF_GROUP_NAME$="" THEN
  337.         GROUP_NAME$=APPLI_NAME$
  338.     ELSE    
  339.         GROUP_NAME$=DEF_GROUP_NAME$
  340.     ENDIF
  341.  
  342.     IF DEF_ICON_NAME$="" THEN
  343.         ICON_NAME$=APPLI_NAME$
  344.     ELSE    
  345.         ICON_NAME$=DEF_ICON_NAME$
  346.     ENDIF
  347.  
  348.     ''Fichiers INI
  349.     WINDIR$ = GetWindowsDir()
  350.     SystemIni$ = MakePath(WINDIR$, "SYSTEM.INI")
  351.     WinIni$    = MakePath(WINDIR$, "WIN.INI")
  352.  
  353.     ''Configuration de l'application
  354.     ini$ = MakePath(WINDIR$, FILE_NAME$+".INI")
  355.     CreateIniKeyValue ini$, "Dialogue", "AcceptLevelMini", OPT_NIV$ , cmoOverwrite
  356.     CreateIniKeyValue ini$, "Dialogue", "AcceptLevel",     "3" , cmoOverwrite
  357.     CreateIniKeyValue ini$, "Dialogue", "ShowAnimation",   "0" , cmoOverwrite
  358.     
  359.     CreateIniKeyValue ini$, "Main", "PathLesson",        REP_COURS$ ,        cmoOverwrite
  360.     CreateIniKeyValue ini$, "Main",  "Language",         Langue(LangueChoisie)     ,      cmoOverwrite
  361.     CreateIniKeyValue ini$, "Main",  "LanguageLAN",      FichierLan(LangueChoisie) ,      cmoOverwrite
  362.     CreateIniKeyValue ini$, "Main",  "Tone",             "1" ,          cmoOverwrite
  363.     CreateIniKeyValue ini$, "Main",  "ToneFile",         "Tone.AUD" ,   cmoOverwrite
  364.     CreateIniKeyValue ini$, "Main",  "StretchBitmap",    "0" ,          cmoOverwrite
  365.     CreateIniKeyValue ini$, "Main",  "StretchVideo",     "0" ,          cmoOverwrite
  366.  
  367.     CreateIniKeyValue ini$, "Fonts", "Questions_Typeset", "Arial" ,     cmoOverwrite
  368.     CreateIniKeyValue ini$, "Fonts", "Locutions_Typeset", "Arial" ,     cmoOverwrite
  369.     CreateIniKeyValue ini$, "Fonts", "Replies_Typeset",   "Arial" ,     cmoOverwrite
  370.     CreateIniKeyValue ini$, "Fonts", "Errors_Typeset",    "Arial" ,     cmoOverwrite
  371.  
  372.     CreateIniKeyValue ini$, "AutoBoot",  "Path",   MakePath(REP_DEST$, FILE_NAME$+".EXE") + " " + REP_COURS$, cmoOverwrite
  373.  
  374.     '' L&H ASR
  375.     IF LH_TECHNO=1 THEN
  376.         CreateIniKeyValue ini$, "Asr",   "OnHardDisk",  "Nothing",    cmoOverwrite
  377.         CreateIniKeyValue ini$, "Asr",   "Path",        MakePath(REP_DEST$,"ASR"),  cmoOverwrite
  378.  
  379.         '' Fichier ASRAPI.INI
  380.         AsrapiIni$ = MakePath(REP_DEST$, "ASRAPI.INI")
  381.         CreateIniKeyValue AsrapiIni$, "Databases",     "NbrOfDatabases", "1",                     cmoOverwrite
  382.         CreateIniKeyValue AsrapiIni$, "Databases",     "DBDir1Name",     "AL",                    cmoOverwrite
  383.         CreateIniKeyValue AsrapiIni$, "Databases",     "DBDir1",         MakePath(REP_DEST$,"ASR"),   cmoOverwrite
  384.         CreateIniKeyValue AsrapiIni$, "Grammars",      "NbrOfCompilers", "0",                     cmoOverwrite
  385.         CreateIniKeyValue AsrapiIni$, "ExportFormats", "NbrOfFormats",   "0",                     cmoOverwrite
  386.  
  387.         ''Fichier SYSTEM.INI
  388.         CreateIniKeyValue SystemIni$, "WINRECWINDSP", "Driver",  "WinDspli.DLL" , cmoOverwrite
  389.         CreateIniKeyValue SystemIni$, "WINRECWINDSP", "Address", "345" ,         cmoOverwrite  
  390.     END IF
  391.  
  392.     '' Suivi
  393.     IF TRACK=1 THEN 
  394.         CreateIniKeyValue ini$, "Main", "TrackingPath", REP_SUIVI$ , cmoOverwrite
  395.         CreateIniKeyValue ini$, "Main", "Tracking",     OPT_SUIVI$, cmoOverwrite
  396.  
  397.         TrackIni$ = MakePath(WINDIR$, "TRACK.INI")
  398.         CreateIniKeyValue TrackIni$, "Main", "IniFile",  FILE_NAME$+".INI" ,  cmoOverwrite
  399.         CreateIniKeyValue TrackIni$, "Main",  "Language",    Langue(LangueChoisie)     , cmoOverwrite
  400.         CreateIniKeyValue TrackIni$, "Main",  "LanguageLAN", FichierLan(LangueChoisie) , cmoOverwrite
  401.     END IF
  402.  
  403.     ''Musique d'intro
  404.     CreateIniKeyValue ini$, "Sound", "Intro", STR$(PLAY_INTRO), cmoNone
  405.  
  406.  
  407.     '' UnInstall
  408.     IF UNINSTALL=1 THEN
  409.         UnInstallIni$ = MakePath(REP_DEST$, "UNINSTAL.INI")
  410.         CreateIniKeyValue UnInstallIni$, "Main",  "Language",    Langue(LangueChoisie)     , cmoOverwrite
  411.         CreateIniKeyValue UnInstallIni$, "Main",  "LanguageLAN", FichierLan(LangueChoisie) , cmoOverwrite
  412.         CreateIniKeyValue UnInstallIni$, "UnInstall", "IniFile",   FILE_NAME$+".INI",    cmoOverwrite
  413.  
  414.         CreateIniKeyValue UnInstallIni$, "UnInstall", "Name",   APPLI_NAME$,    cmoOverwrite
  415.         CreateIniKeyValue UnInstallIni$, "UnInstall", "Path",   REP_DEST$,      cmoOverwrite
  416.         CreateIniKeyValue UnInstallIni$, "UnInstall", "Group",  GROUP_NAME$,    cmoOverwrite
  417.         CreateIniKeyValue UnInstallIni$, "UnInstall", "Icon1",  ICON_NAME$,     cmoOverwrite
  418.         CreateIniKeyValue UnInstallIni$, "UnInstall", "Icon2",  IconeUnInstall(LangueChoisie),   cmoOverwrite
  419.         NBICON = 2
  420.         IF  TRACK=1 THEN
  421.             NBICON = NBICON +1
  422.             CreateIniKeyValue UnInstallIni$, "UnInstall", "Track",   "1",    cmoOverwrite
  423.             CreateIniKeyValue UnInstallIni$, "UnInstall", "Icon"+LTRIM$(STR$(NBICON)),  IconeSuivi(LangueChoisie), cmoOverwrite
  424.         ENDIF
  425.         IF TUTORIAL=1 THEN
  426.             NBICON = NBICON +1
  427.             CreateIniKeyValue UnInstallIni$, "UnInstall", "Icon"+LTRIM$(STR$(NBICON)),  IconeDidacticiel(LangueChoisie),  cmoOverwrite
  428.         ENDIF
  429.         CreateIniKeyValue UnInstallIni$, "UnInstall", "NbIcon", LTRIM$(STR$(NBICON)) , cmoOverwrite
  430.     END IF
  431.  
  432.     '' Modification de win.ini et system.ini pour accepter la video numerique    
  433.     IF VIDEO_DRV=1 THEN        
  434.         CreateIniKeyValue WinIni$,  "mci extensions", "avi", "AVIVideo" , cmoNone
  435.         CreateIniKeyValue SystemIni$,  "mci", "AVIVideo" , "mciavi.drv", cmoNone
  436.         CreateIniKeyValue SystemIni$,  "drivers", "VIDC.CVID", "iccvid.drv" , cmoNone
  437.         CreateIniKeyValue SystemIni$,  "drivers", "VIDC.MSVC", "msvidc.drv" , cmoNone
  438.     END IF
  439.  
  440.     ''Installation des icones
  441.     CreateProgmanGroup  GROUP_NAME$, "", cmoNone
  442.     ShowProgmanGroup    GROUP_NAME$, 1, cmoNone
  443.     CreateProgmanItem   GROUP_NAME$, ICON_NAME$, MakePath(REP_DEST$,FILE_NAME$+".EXE") + " " + REP_COURS$, "", cmoOverwrite
  444.  
  445.     'Creation d'une icone pour le didacticiel
  446.     IF TUTORIAL=1 THEN
  447.         IF MID$(REP_COURS$, LEN(REP_COURS$), 1) <> "\" THEN
  448.             REP_COURS$ = REP_COURS$ + "\"
  449.         END IF
  450.         CreateProgmanItem   GROUP_NAME$, IconeDidacticiel(LangueChoisie), REP_COURS$ + RepDidacticiel(LangueChoisie) + "\" + "PRES_AL.EXE", "", cmoOverwrite
  451.     END IF
  452.  
  453.     IF TRACK=1 THEN
  454.         CreateProgmanItem   GROUP_NAME$, IconeSuivi(LangueChoisie),   MakePath(REP_DEST$,"TRACK.EXE") , "", cmoOverwrite
  455.     END IF
  456.  
  457.     IF UNINSTALL=1 THEN
  458.         CreateProgmanItem   GROUP_NAME$, IconeUnInstall(LangueChoisie),  MakePath(REP_DEST$,"UNINSTAL.EXE"), "", cmoOverwrite
  459.     END IF
  460.     
  461. END SUB
  462. '*************************************************************************
  463.  
  464.                       
  465. '******************************************************************************
  466. '******************************************************************************
  467. '******************************************************************************
  468. '******************************************************************************
  469. '******************************************************************************
  470.  
  471. '******************************************************************************
  472. ''Initialisations diverses
  473. SUB Initialisation STATIC
  474.     CUIDLL$   = "mscuistf.dll"
  475.     HELPPROC$ = "FHelpDlgProc"
  476.  
  477.     ''Mettre en plein ecran
  478.     mainWnd%=HwndFrame()
  479.     w&=SetWindowLong(mainWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  480.     j%=ShowWindow(mainWnd%,SW_SHOWMAXIMIZED)
  481.  
  482.     IF DEFAULT_PATH$ = "" THEN
  483.         REP_DEST$ = "C:\"+FILE_NAME$+"\"
  484.     ELSE
  485.         REP_DEST$ = DEFAULT_PATH$
  486.     END IF
  487.  
  488.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  489.     szDrive$ = MID$(SrcDir$ , 1, 1)
  490.     IF szDrive$ = "A" THEN
  491.         REP_COURS$ = "D:\"
  492.     ELSEIF szDrive$ = "B" THEN
  493.         REP_COURS$ = "D:\"
  494.      ELSE
  495.         REP_COURS$ = SrcDir$
  496.     END IF
  497.  
  498. ''Options par defaut
  499.     OPT_NIV$ = "3"
  500.     OPT_SUIVI$ = "3"
  501.     LangueChoisie = VAL(DEFAULT_LANGUAGE$)
  502.     
  503.     SetBitmap CUIDLL$,1
  504.  
  505. ''    IF TITLE$="" THEN
  506. ''        THETITLE$ = APPLI_NAME$+" Setup"
  507. ''    ELSE
  508. ''        THETITLE$ = TITLE$
  509. ''        END IF
  510.     SetTitle THETITLE$
  511.  
  512.     szInf$ = GetSymbolValue ("STF_SRCINFPATH")
  513.     IF (szInf$ = "") THEN
  514.         szInf$ = GetSymbolValue ("STF_CWDDIR") + "SETUP.INF"
  515.     END IF
  516.     ReadInfFile szInf$
  517. END SUB
  518. '*************************************************************************
  519.  
  520.  
  521. '******************************************************************************
  522. ''Affiche une boite pour indiquer un mauvais chemin
  523. SUB MauvaisChemin STATIC
  524. BADPATH1:
  525.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  526.     IF sz$ = "REACTIVATE" THEN
  527.         GOTO BADPATH1
  528.     END IF
  529.     UIPop 1
  530. END SUB
  531. '******************************************************************************
  532.  
  533.  
  534. '*************************************************************************
  535. ''Creer un chemin
  536. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  537.     IF szDir$ = "" THEN
  538.         MakePath = szFile$
  539.     ELSEIF szFile$ = "" THEN
  540.         MakePath = szDir$
  541.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  542.         MakePath = szDir$ + szFile$
  543.     ELSE
  544.         MakePath = szDir$ + "\" + szFile$
  545.     END IF
  546. END FUNCTION
  547. '*************************************************************************
  548.  
  549.  
  550. '******************************************************************************
  551. ''Boite pour demander le chemin pour installer l'application
  552. FUNCTION  CheminApplication () STATIC AS STRING
  553.     SetSymbolValue "EditTextIn", REP_DEST$
  554.     SetSymbolValue "EditFocus", "END"
  555.  
  556. GETPATHL1:
  557.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  558.     REP_DEST$ = GetSymbolValue("EditTextOut")
  559.  
  560.     IF sz$ = "CONTINUE" THEN
  561.         IF IsDirWritable(REP_DEST$) = 0 THEN
  562.             MauvaisChemin
  563.             GOTO GETPATHL1
  564.         END IF
  565.         UIPop 1
  566.         CheminApplication  = sz$
  567.     ELSEIF sz$ = "REACTIVATE" THEN
  568.         GOTO GETPATHL1
  569.     ELSEIF sz$ = "BACK" THEN
  570.         UIPop 1
  571.         CheminApplication  = "BACK"
  572.     ELSE    ''Erreur
  573.         CheminApplication  = "ERREUR"
  574.     END IF
  575. END FUNCTION
  576. '******************************************************************************
  577.  
  578.  
  579. '******************************************************************************
  580. ''Recuperer l'emplacement des cours
  581. FUNCTION  CheminCours () STATIC AS STRING
  582.  
  583.     SetSymbolValue "EditTextIn", REP_COURS$
  584.     SetSymbolValue "EditFocus", "END"
  585.  
  586. GETPATHL2:
  587.     sz$ = UIStartDlg(CUIDLL$, DESTPATH_COURSES, "FEditDlgProc", APPHELP, HELPPROC$)
  588.     REP_COURS$ = GetSymbolValue("EditTextOut")
  589.  
  590.     IF sz$ = "CONTINUE" THEN
  591.         UIPop 1
  592.         CheminCours  = sz$
  593.     ELSEIF sz$ = "REACTIVATE" THEN
  594.         GOTO GETPATHL2
  595.     ELSEIF sz$ = "BACK" THEN
  596.         UIPop 1
  597.         CheminCours  = "BACK"
  598.     ELSE    ''Erreur
  599.         CheminCours  = "ERREUR"
  600.     END IF
  601. END FUNCTION
  602. '******************************************************************************
  603.  
  604.  
  605. '******************************************************************************
  606. ''Recuperer le niveau minimum pour le seuil de tolerance
  607. FUNCTION  OptionNiveau () STATIC AS STRING
  608.     SetSymbolValue "RadioDefault", OPT_NIV$
  609. OPTL1:
  610.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  611.     OPT_NIV$ = GetSymbolValue("ButtonChecked")
  612.  
  613.     IF sz$ = "CONTINUE" THEN
  614.         UIPop(1)
  615.         OptionNiveau  = sz$
  616.     ELSEIF sz$ = "REACTIVATE" THEN
  617.         GOTO OPTL1
  618.     ELSEIF sz$ = "BACK" THEN
  619.         UIPop 1
  620.         OptionNiveau  = "BACK"
  621.     ELSE
  622.         OptionNiveau  = "ERREUR"
  623.     END IF
  624. END FUNCTION
  625. '******************************************************************************
  626.  
  627.  
  628. '******************************************************************************
  629. ''Boite de choix de la langue
  630. FUNCTION  OptionLangue () STATIC AS STRING
  631.     SetSymbolValue "RadioDefault", STR$(LangueChoisie)
  632. OPTL2:
  633.     sz$ = UIStartDlg(CUIDLL$, OPTIONS_LANGUES, "FRadioDlgProc", APPHELP, HELPPROC$)
  634.     LangueChoisie = VAL(GetSymbolValue("ButtonChecked"))
  635.  
  636.     IF sz$ = "CONTINUE" THEN
  637.         UIPop(1)
  638.         OptionLangue =  sz$
  639.     ELSEIF sz$ = "REACTIVATE" THEN
  640.         GOTO OPTL2
  641.     ELSEIF sz$ = "BACK" THEN
  642.         UIPop 1
  643.         OptionLangue = "BACK"
  644.     ELSE
  645.         OptionLangue = "ERREUR"
  646.     END IF
  647. END FUNCTION
  648. '******************************************************************************
  649.  
  650.  
  651. '******************************************************************************
  652. ''Boite pour avoir les informations sur le suivi
  653. FUNCTION  CheminSuivi () STATIC AS STRING
  654.     ''Recuperer le nom repertoire dans lequel on placera le suivi
  655.     SetSymbolValue "EditTextIn", REP_DEST$
  656.     SetSymbolValue "EditFocus", "END"
  657.     SetSymbolValue "RadioDefault", STR$(VAL(OPT_SUIVI$) + 1)
  658.  
  659. GETPATHL2:
  660.     sz$ = UIStartDlg(CUIDLL$, DESTPATH_SUIVI, "FEditRadioDlgProc", APPHELP, HELPPROC$)
  661.     REP_SUIVI$ = GetSymbolValue("EditTextOut")
  662.     OPT_SUIVI$ = STR$(VAL(GetSymbolValue("ButtonChecked")) -1)
  663.  
  664.     IF sz$ = "CONTINUE" THEN
  665.         UIPop 1
  666.         CheminSuivi  = sz$
  667.     ELSEIF sz$ = "REACTIVATE" THEN
  668.         GOTO GETPATHL2
  669.     ELSEIF sz$ = "BACK" THEN
  670.         UIPop 1
  671.         CheminSuivi  = "BACK"
  672.     ELSE    ''Erreur
  673.         CheminSuivi  = "ERREUR"
  674.     END IF
  675. END FUNCTION
  676. '******************************************************************************
  677.  
  678. '******************************************************************************
  679. '******************************************************************************
  680. '******************************************************************************
  681. '******************************************************************************
  682. '******************************************************************************
  683.  
  684.  
  685. '******************************************************************************
  686. ''Initialisations des tabelaux relatifs aux langues
  687. SUB InitialisationTableauxLangue STATIC
  688.     FOR i%=1 TO MAX_LANGUE STEP 1
  689.         Langue(i%)           = "English"
  690.         FichierLAN(i%)       = "ANG"
  691.         RubriqueInf(i%)      = "English"
  692.         RepDidacticiel(i%)   = "ANG_CBT"
  693.         IconeDidacticiel(i%) = "Tutorial"
  694.         IconeUnInstall(i%)   = "UnInstall"
  695.         IconeSuivi(i%)       = "Tracking"
  696.     NEXT i%
  697.  
  698.     ''Francais N° 2
  699.         Langue(2)           = "franτais"
  700.         FichierLAN(2)       = "FRA"
  701.         RubriqueInf(2)      = "French"
  702.         RepDidacticiel(2)   = "FRA_CBT"
  703.         IconeDidacticiel(2) = "Didacticiel"
  704.         IconeUnInstall(2)   = "DΘsinstallation"
  705.         IconeSuivi(2)       = "Suivi de l'ΘlΦve"
  706.  
  707.  
  708.     ''Allemand N° 3
  709.         Langue(3)           = "deutsch"
  710.         FichierLAN(3)       = "ALL"
  711.         RubriqueInf(3)      = "German"
  712.         RepDidacticiel(3)   = "ALL_CBT"
  713.         IconeDidacticiel(3) = "Lernprogramm"
  714.         IconeUnInstall(3)   = "Deinstallation"
  715.         IconeSuivi(3)       = "Lernerdatei"
  716.  
  717.  
  718.     ''Espagnol N° 4
  719.         Langue(4)           = "espa±ol"
  720.         FichierLAN(4)       = "ESP"
  721.         RubriqueInf(4)      = "Spanish"
  722.         RepDidacticiel(4)   = "ESP_CBT"
  723.         IconeDidacticiel(4) = "Programa didßctico"
  724.         IconeUnInstall(4)   = "Desinstalaci≤n"
  725.         IconeSuivi(4)       = "Balance de alumno"
  726.  
  727.     ''Italien N° 5
  728.         Langue(5)           = "italian"
  729.         FichierLAN(5)       = "ITA"
  730.         RubriqueInf(5)      = "Italian"
  731.         RepDidacticiel(5)   = "ITA_CBT"
  732.         IconeUnInstall(5)   = "Disinstalla"
  733.         IconeDidacticiel(5) = "Tutorial"
  734.         
  735.     ''Hollandais N° 6
  736.         Langue(6)           = "dutch"
  737.         FichierLAN(6)       = "DUT"
  738.         RubriqueInf(6)      = "Dutch"
  739.  
  740.     ''Danois N° 7
  741.         Langue(7)           = "danish"
  742.         FichierLAN(7)       = "DAN"
  743.         RubriqueInf(7)      = "Danish"
  744.         RepDidacticiel(7)   = "DAN_CBT"
  745.  
  746.     ''Japonais N° 8
  747.         Langue(8)           = "japanese"
  748.         FichierLAN(8)       = "JPN"
  749.         RubriqueInf(8)      = "Japanese"
  750.  
  751.     ''Hongrois N° 9
  752.         Langue(9)           = "hungarian"
  753.         FichierLAN(9)       = "HUN"
  754.         RubriqueInf(9)      = "Hungarian"
  755.         RepDidacticiel(9)   = "HUN_CBT"
  756.         IconeDidacticiel(9) = "Bevezet⌡"
  757.  
  758.     ''Coreen N° 10
  759.         Langue(10)          = "korean"
  760.         FichierLAN(10)      = "KOR"
  761.         RubriqueInf(10)     = "Korean"
  762.         RepDidacticiel(10)  = "KOR_CBT"
  763.         IconeDidacticiel(10)= "┴÷╡╡╝¡"
  764.  
  765.     ''Brésilien N° 11
  766.         Langue(11)          = "brazilian"
  767.         FichierLAN(11)      = "BRA"
  768.         RubriqueInf(11)     = "Brazilian"
  769.         RepDidacticiel(11)  = "BRA_CBT"
  770.  
  771.     ''Portugais N° 12
  772.         Langue(12)          = "portugese"
  773.         FichierLAN(12)      = "POR"
  774.         RubriqueInf(12)     = "Portugese"
  775.         RepDidacticiel(12)  = "POR_CBT"
  776.  
  777.      ''Finnois N° 13        = "finnish"
  778.         FichierLAN(13)       = "FIN"
  779.         RubriqueInf(13)      = "Finnish"
  780.         RepDidacticiel(13)   = "FIN_CBT"
  781.         IconeDidacticiel(13) = "Opetusohjelma"
  782.         IconeUnInstall(13)   = "Poista asennus"
  783.         IconeSuivi(13)       = "Kelaa"
  784.  
  785.      ''Suedois N° 14        = "swedish"
  786.         FichierLAN(14)       = "SWE"
  787.         RubriqueInf(14)      = "Swedish"
  788.         RepDidacticiel(14)   = "SWE_CBT"
  789.         IconeDidacticiel(14) = "Guide"
  790.         IconeUnInstall(14)   = "AvInstallera"
  791.         IconeSuivi(14)       = "S÷ker"
  792.  
  793.      ''Norvégien N° 15       = "norwegian"
  794.         FichierLAN(15)       = "NOR"
  795.         RubriqueInf(15)      = "Norwegian"
  796.         RepDidacticiel(15)   = "NOR_CBT"
  797.         IconeDidacticiel(15) = "Innf°ring"
  798.         IconeUnInstall(15)   = "AvInstaller"
  799.         IconeSuivi(15)       = "Oppf°lging"
  800.  
  801.  
  802.      ''Thai N° 16       = "thai"
  803.         FichierLAN(16)       = "THAI"
  804.         RubriqueInf(16)      = "THA"
  805.         RepDidacticiel(16)   = "THA_CBT"
  806.         IconeDidacticiel(16) = "α╣╫Θ═╦╥├╥┬┼╨α═╒┬┤"
  807.         IconeUnInstall(16)   = "Σ┴Φ╡╘┤╡╤ΘºΓ╗├ßí├┴"
  808.         IconeSuivi(16)       = "║╤╣╖╓íóΘ═┴┘┼"
  809.  
  810.      ''Chinois N° 17       = "chinese"
  811.         FichierLAN(17)       = "CHI"
  812.         RubriqueInf(17)      = "Chinese"
  813.         RepDidacticiel(17)   = "CHI_CBT"
  814.         IconeDidacticiel(17) = "▒╨╛╟╜╥╡{"
  815.         IconeUnInstall(17)   = "╕╤░úªw╕╦"
  816.         IconeSuivi(17)       = "¡╙ñH╛╟▓▀░O┐²"
  817.  
  818.      ''Arabe N° 18       = "arabic"
  819.         FichierLAN(18)       = "ARA"
  820.         RubriqueInf(18)      = "Arabic"
  821.         RepDidacticiel(18)   = "ANG_CBT"
  822.         IconeDidacticiel(18) = "Tutorial"
  823.         IconeUnInstall(18)   = "Uninstall"
  824.         IconeSuivi(18)       = "Tracking"
  825.  
  826.     ''Slovene N° 19       = "slovenian"
  827.         FichierLAN(19)       = "SLO"
  828.         RubriqueInf(19)      = "Slovenian"
  829.         RepDidacticiel(19)   = "SLO_CBT"
  830.         IconeDidacticiel(19) = "PomoΦnik"
  831.         IconeUnInstall(19)   = "Odstranitev"
  832.         IconeSuivi(19)       = "Preverjanje"
  833.  
  834. END SUB
  835. '*************************************************************************
  836.