home *** CD-ROM | disk | FTP | other *** search
/ PC World 2000 December / PCWorld_2000-12_cd.bin / Software / Komercni / Leda / DemoAn / SETUP.MS_ / SETUP.MS
Text File  |  1999-08-19  |  30KB  |  859 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$       =       "21"                     '' 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 = 21
  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.  
  430.         'Added by L. Baillet - 19/08/1999 !!!!!
  431.         NBICON = NBICON +1
  432.         CreateProgmanItem   GROUP_NAME$, "Informace",  MakePath(REP_DEST$,"Informac.txt"), "", cmoOverwrite
  433.         CreateIniKeyValue UnInstallIni$, "UnInstall", "Icon"+LTRIM$(STR$(NBICON)),  "Informace",  cmoOverwrite
  434.  
  435.         CreateIniKeyValue UnInstallIni$, "UnInstall", "NbIcon", LTRIM$(STR$(NBICON)) , cmoOverwrite
  436.     END IF
  437.  
  438.     '' Modification de win.ini et system.ini pour accepter la video numerique    
  439.     IF VIDEO_DRV=1 THEN        
  440.         CreateIniKeyValue WinIni$,  "mci extensions", "avi", "AVIVideo" , cmoNone
  441.         CreateIniKeyValue SystemIni$,  "mci", "AVIVideo" , "mciavi.drv", cmoNone
  442.         CreateIniKeyValue SystemIni$,  "drivers", "VIDC.CVID", "iccvid.drv" , cmoNone
  443.         CreateIniKeyValue SystemIni$,  "drivers", "VIDC.MSVC", "msvidc.drv" , cmoNone
  444.     END IF
  445.  
  446.     ''Installation des icones
  447.     CreateProgmanGroup  GROUP_NAME$, "", cmoNone
  448.     ShowProgmanGroup    GROUP_NAME$, 1, cmoNone
  449.     CreateProgmanItem   GROUP_NAME$, ICON_NAME$, MakePath(REP_DEST$,FILE_NAME$+".EXE") + " " + REP_COURS$, "", cmoOverwrite
  450.  
  451.     'Creation d'une icone pour le didacticiel
  452.     IF TUTORIAL=1 THEN
  453.         IF MID$(REP_COURS$, LEN(REP_COURS$), 1) <> "\" THEN
  454.             REP_COURS$ = REP_COURS$ + "\"
  455.         END IF
  456.         CreateProgmanItem   GROUP_NAME$, IconeDidacticiel(LangueChoisie), REP_COURS$ + RepDidacticiel(LangueChoisie) + "\" + "PRES_AL.EXE", "", cmoOverwrite
  457.     END IF
  458.  
  459.     IF TRACK=1 THEN
  460.         CreateProgmanItem   GROUP_NAME$, IconeSuivi(LangueChoisie),   MakePath(REP_DEST$,"TRACK.EXE") , "", cmoOverwrite
  461.     END IF
  462.  
  463.     IF UNINSTALL=1 THEN
  464.         CreateProgmanItem   GROUP_NAME$, IconeUnInstall(LangueChoisie),  MakePath(REP_DEST$,"UNINSTAL.EXE"), "", cmoOverwrite
  465.     END IF
  466.  
  467. END SUB
  468. '*************************************************************************
  469.  
  470.                       
  471. '******************************************************************************
  472. '******************************************************************************
  473. '******************************************************************************
  474. '******************************************************************************
  475. '******************************************************************************
  476.  
  477. '******************************************************************************
  478. ''Initialisations diverses
  479. SUB Initialisation STATIC
  480.     CUIDLL$   = "mscuistf.dll"
  481.     HELPPROC$ = "FHelpDlgProc"
  482.  
  483.     ''Mettre en plein ecran
  484.     mainWnd%=HwndFrame()
  485.     w&=SetWindowLong(mainWnd%,GWL_STYLE,WS_VISIBLE+WS_BORDER+WS_CLIPCHILDREN)
  486.     j%=ShowWindow(mainWnd%,SW_SHOWMAXIMIZED)
  487.  
  488.     IF DEFAULT_PATH$ = "" THEN
  489.         REP_DEST$ = "C:\"+FILE_NAME$+"\"
  490.     ELSE
  491.         REP_DEST$ = DEFAULT_PATH$
  492.     END IF
  493.  
  494.     SrcDir$ = GetSymbolValue("STF_SRCDIR")
  495.     szDrive$ = MID$(SrcDir$ , 1, 1)
  496.     IF szDrive$ = "A" THEN
  497.         REP_COURS$ = "D:\"
  498.     ELSEIF szDrive$ = "B" THEN
  499.         REP_COURS$ = "D:\"
  500.      ELSE
  501.         REP_COURS$ = SrcDir$
  502.     END IF
  503.  
  504. ''Options par defaut
  505.     OPT_NIV$ = "3"
  506.     OPT_SUIVI$ = "3"
  507.     LangueChoisie = VAL(DEFAULT_LANGUAGE$)
  508.     
  509.     SetBitmap CUIDLL$,1
  510.  
  511. ''    IF TITLE$="" THEN
  512. ''        THETITLE$ = APPLI_NAME$+" Setup"
  513. ''    ELSE
  514. ''        THETITLE$ = TITLE$
  515. ''        END IF
  516.     SetTitle THETITLE$
  517.  
  518.     szInf$ = GetSymbolValue ("STF_SRCINFPATH")
  519.     IF (szInf$ = "") THEN
  520.         szInf$ = GetSymbolValue ("STF_CWDDIR") + "SETUP.INF"
  521.     END IF
  522.     ReadInfFile szInf$
  523. END SUB
  524. '*************************************************************************
  525.  
  526.  
  527. '******************************************************************************
  528. ''Affiche une boite pour indiquer un mauvais chemin
  529. SUB MauvaisChemin STATIC
  530. BADPATH1:
  531.     sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  532.     IF sz$ = "REACTIVATE" THEN
  533.         GOTO BADPATH1
  534.     END IF
  535.     UIPop 1
  536. END SUB
  537. '******************************************************************************
  538.  
  539.  
  540. '*************************************************************************
  541. ''Creer un chemin
  542. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  543.     IF szDir$ = "" THEN
  544.         MakePath = szFile$
  545.     ELSEIF szFile$ = "" THEN
  546.         MakePath = szDir$
  547.     ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  548.         MakePath = szDir$ + szFile$
  549.     ELSE
  550.         MakePath = szDir$ + "\" + szFile$
  551.     END IF
  552. END FUNCTION
  553. '*************************************************************************
  554.  
  555.  
  556. '******************************************************************************
  557. ''Boite pour demander le chemin pour installer l'application
  558. FUNCTION  CheminApplication () STATIC AS STRING
  559.     SetSymbolValue "EditTextIn", REP_DEST$
  560.     SetSymbolValue "EditFocus", "END"
  561.  
  562. GETPATHL1:
  563.     sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", APPHELP, HELPPROC$)
  564.     REP_DEST$ = GetSymbolValue("EditTextOut")
  565.  
  566.     IF sz$ = "CONTINUE" THEN
  567.         IF IsDirWritable(REP_DEST$) = 0 THEN
  568.             MauvaisChemin
  569.             GOTO GETPATHL1
  570.         END IF
  571.         UIPop 1
  572.         CheminApplication  = sz$
  573.     ELSEIF sz$ = "REACTIVATE" THEN
  574.         GOTO GETPATHL1
  575.     ELSEIF sz$ = "BACK" THEN
  576.         UIPop 1
  577.         CheminApplication  = "BACK"
  578.     ELSE    ''Erreur
  579.         CheminApplication  = "ERREUR"
  580.     END IF
  581. END FUNCTION
  582. '******************************************************************************
  583.  
  584.  
  585. '******************************************************************************
  586. ''Recuperer l'emplacement des cours
  587. FUNCTION  CheminCours () STATIC AS STRING
  588.  
  589.     SetSymbolValue "EditTextIn", REP_COURS$
  590.     SetSymbolValue "EditFocus", "END"
  591.  
  592. GETPATHL2:
  593.     sz$ = UIStartDlg(CUIDLL$, DESTPATH_COURSES, "FEditDlgProc", APPHELP, HELPPROC$)
  594.     REP_COURS$ = GetSymbolValue("EditTextOut")
  595.  
  596.     IF sz$ = "CONTINUE" THEN
  597.         UIPop 1
  598.         CheminCours  = sz$
  599.     ELSEIF sz$ = "REACTIVATE" THEN
  600.         GOTO GETPATHL2
  601.     ELSEIF sz$ = "BACK" THEN
  602.         UIPop 1
  603.         CheminCours  = "BACK"
  604.     ELSE    ''Erreur
  605.         CheminCours  = "ERREUR"
  606.     END IF
  607. END FUNCTION
  608. '******************************************************************************
  609.  
  610.  
  611. '******************************************************************************
  612. ''Recuperer le niveau minimum pour le seuil de tolerance
  613. FUNCTION  OptionNiveau () STATIC AS STRING
  614.     SetSymbolValue "RadioDefault", OPT_NIV$
  615. OPTL1:
  616.     sz$ = UIStartDlg(CUIDLL$, OPTIONS, "FRadioDlgProc", APPHELP, HELPPROC$)
  617.     OPT_NIV$ = GetSymbolValue("ButtonChecked")
  618.  
  619.     IF sz$ = "CONTINUE" THEN
  620.         UIPop(1)
  621.         OptionNiveau  = sz$
  622.     ELSEIF sz$ = "REACTIVATE" THEN
  623.         GOTO OPTL1
  624.     ELSEIF sz$ = "BACK" THEN
  625.         UIPop 1
  626.         OptionNiveau  = "BACK"
  627.     ELSE
  628.         OptionNiveau  = "ERREUR"
  629.     END IF
  630. END FUNCTION
  631. '******************************************************************************
  632.  
  633.  
  634. '******************************************************************************
  635. ''Boite de choix de la langue
  636. FUNCTION  OptionLangue () STATIC AS STRING
  637.     SetSymbolValue "RadioDefault", STR$(LangueChoisie)
  638. OPTL2:
  639.     sz$ = UIStartDlg(CUIDLL$, OPTIONS_LANGUES, "FRadioDlgProc", APPHELP, HELPPROC$)
  640.     LangueChoisie = VAL(GetSymbolValue("ButtonChecked"))
  641.  
  642.     IF sz$ = "CONTINUE" THEN
  643.         UIPop(1)
  644.         OptionLangue =  sz$
  645.     ELSEIF sz$ = "REACTIVATE" THEN
  646.         GOTO OPTL2
  647.     ELSEIF sz$ = "BACK" THEN
  648.         UIPop 1
  649.         OptionLangue = "BACK"
  650.     ELSE
  651.         OptionLangue = "ERREUR"
  652.     END IF
  653. END FUNCTION
  654. '******************************************************************************
  655.  
  656.  
  657. '******************************************************************************
  658. ''Boite pour avoir les informations sur le suivi
  659. FUNCTION  CheminSuivi () STATIC AS STRING
  660.     ''Recuperer le nom repertoire dans lequel on placera le suivi
  661.     SetSymbolValue "EditTextIn", REP_DEST$
  662.     SetSymbolValue "EditFocus", "END"
  663.     SetSymbolValue "RadioDefault", STR$(VAL(OPT_SUIVI$) + 1)
  664.  
  665. GETPATHL2:
  666.     sz$ = UIStartDlg(CUIDLL$, DESTPATH_SUIVI, "FEditRadioDlgProc", APPHELP, HELPPROC$)
  667.     REP_SUIVI$ = GetSymbolValue("EditTextOut")
  668.     OPT_SUIVI$ = STR$(VAL(GetSymbolValue("ButtonChecked")) -1)
  669.  
  670.     IF sz$ = "CONTINUE" THEN
  671.         UIPop 1
  672.         CheminSuivi  = sz$
  673.     ELSEIF sz$ = "REACTIVATE" THEN
  674.         GOTO GETPATHL2
  675.     ELSEIF sz$ = "BACK" THEN
  676.         UIPop 1
  677.         CheminSuivi  = "BACK"
  678.     ELSE    ''Erreur
  679.         CheminSuivi  = "ERREUR"
  680.     END IF
  681. END FUNCTION
  682. '******************************************************************************
  683.  
  684. '******************************************************************************
  685. '******************************************************************************
  686. '******************************************************************************
  687. '******************************************************************************
  688. '******************************************************************************
  689.  
  690.  
  691. '******************************************************************************
  692. ''Initialisations des tabelaux relatifs aux langues
  693. SUB InitialisationTableauxLangue STATIC
  694.     FOR i%=1 TO MAX_LANGUE STEP 1
  695.         Langue(i%)           = "English"
  696.         FichierLAN(i%)       = "ANG"
  697.         RubriqueInf(i%)      = "English"
  698.         RepDidacticiel(i%)   = "ANG_CBT"
  699.         IconeDidacticiel(i%) = "Tutorial"
  700.         IconeUnInstall(i%)   = "UnInstall"
  701.         IconeSuivi(i%)       = "Tracking"
  702.     NEXT i%
  703.  
  704.     ''Francais N° 2
  705.         Langue(2)           = "franτais"
  706.         FichierLAN(2)       = "FRA"
  707.         RubriqueInf(2)      = "French"
  708.         RepDidacticiel(2)   = "FRA_CBT"
  709.         IconeDidacticiel(2) = "Didacticiel"
  710.         IconeUnInstall(2)   = "DΘsinstallation"
  711.         IconeSuivi(2)       = "Suivi de l'ΘlΦve"
  712.  
  713.  
  714.     ''Allemand N° 3
  715.         Langue(3)           = "deutsch"
  716.         FichierLAN(3)       = "ALL"
  717.         RubriqueInf(3)      = "German"
  718.         RepDidacticiel(3)   = "ALL_CBT"
  719.         IconeDidacticiel(3) = "Lernprogramm"
  720.         IconeUnInstall(3)   = "Deinstallation"
  721.         IconeSuivi(3)       = "Lernerdatei"
  722.  
  723.  
  724.     ''Espagnol N° 4
  725.         Langue(4)           = "espa±ol"
  726.         FichierLAN(4)       = "ESP"
  727.         RubriqueInf(4)      = "Spanish"
  728.         RepDidacticiel(4)   = "ESP_CBT"
  729.         IconeDidacticiel(4) = "Programa didßctico"
  730.         IconeUnInstall(4)   = "Desinstalaci≤n"
  731.         IconeSuivi(4)       = "Balance de alumno"
  732.  
  733.     ''Italien N° 5
  734.         Langue(5)           = "italian"
  735.         FichierLAN(5)       = "ITA"
  736.         RubriqueInf(5)      = "Italian"
  737.         RepDidacticiel(5)   = "ITA_CBT"
  738.         IconeUnInstall(5)   = "Disinstalla"
  739.         IconeDidacticiel(5) = "Tutorial"
  740.         
  741.     ''Hollandais N° 6
  742.         Langue(6)           = "dutch"
  743.         FichierLAN(6)       = "DUT"
  744.         RubriqueInf(6)      = "Dutch"
  745.  
  746.     ''Danois N° 7
  747.         Langue(7)           = "danish"
  748.         FichierLAN(7)       = "DAN"
  749.         RubriqueInf(7)      = "Danish"
  750.         RepDidacticiel(7)   = "DAN_CBT"
  751.  
  752.     ''Japonais N° 8
  753.         Langue(8)           = "japanese"
  754.         FichierLAN(8)       = "JPN"
  755.         RubriqueInf(8)      = "Japanese"
  756.  
  757.     ''Hongrois N° 9
  758.         Langue(9)           = "hungarian"
  759.         FichierLAN(9)       = "HUN"
  760.         RubriqueInf(9)      = "Hungarian"
  761.         RepDidacticiel(9)   = "HUN_CBT"
  762.         IconeDidacticiel(9) = "Bevezet⌡"
  763.  
  764.     ''Coreen N° 10
  765.         Langue(10)          = "korean"
  766.         FichierLAN(10)      = "KOR"
  767.         RubriqueInf(10)     = "Korean"
  768.         RepDidacticiel(10)  = "KOR_CBT"
  769.         IconeDidacticiel(10)= "┴÷╡╡╝¡"
  770.  
  771.     ''Brésilien N° 11
  772.         Langue(11)          = "brazilian"
  773.         FichierLAN(11)      = "BRA"
  774.         RubriqueInf(11)     = "Brazilian"
  775.         RepDidacticiel(11)  = "BRA_CBT"
  776.  
  777.     ''Portugais N° 12
  778.         Langue(12)          = "portugese"
  779.         FichierLAN(12)      = "POR"
  780.         RubriqueInf(12)     = "Portugese"
  781.         RepDidacticiel(12)  = "POR_CBT"
  782.  
  783.      ''Finnois N° 13        = "finnish"
  784.         FichierLAN(13)       = "FIN"
  785.         RubriqueInf(13)      = "Finnish"
  786.         RepDidacticiel(13)   = "FIN_CBT"
  787.         IconeDidacticiel(13) = "Opetusohjelma"
  788.         IconeUnInstall(13)   = "Poista asennus"
  789.         IconeSuivi(13)       = "Kelaa"
  790.  
  791.      ''Suedois N° 14        = "swedish"
  792.         FichierLAN(14)       = "SWE"
  793.         RubriqueInf(14)      = "Swedish"
  794.         RepDidacticiel(14)   = "SWE_CBT"
  795.         IconeDidacticiel(14) = "Guide"
  796.         IconeUnInstall(14)   = "AvInstallera"
  797.         IconeSuivi(14)       = "S÷ker"
  798.  
  799.      ''Norvégien N° 15       = "norwegian"
  800.         FichierLAN(15)       = "NOR"
  801.         RubriqueInf(15)      = "Norwegian"
  802.         RepDidacticiel(15)   = "NOR_CBT"
  803.         IconeDidacticiel(15) = "Innf°ring"
  804.         IconeUnInstall(15)   = "AvInstaller"
  805.         IconeSuivi(15)       = "Oppf°lging"
  806.  
  807.  
  808.      ''Thai N° 16       = "thai"
  809.         FichierLAN(16)       = "THAI"
  810.         RubriqueInf(16)      = "THA"
  811.         RepDidacticiel(16)   = "THA_CBT"
  812.         IconeDidacticiel(16) = "α╣╫Θ═╦╥├╥┬┼╨α═╒┬┤"
  813.         IconeUnInstall(16)   = "Σ┴Φ╡╘┤╡╤ΘºΓ╗├ßí├┴"
  814.         IconeSuivi(16)       = "║╤╣╖╓íóΘ═┴┘┼"
  815.  
  816.      ''Chinois N° 17       = "chinese"
  817.         FichierLAN(17)       = "CHI"
  818.         RubriqueInf(17)      = "Chinese"
  819.         RepDidacticiel(17)   = "CHI_CBT"
  820.         IconeDidacticiel(17) = "▒╨╛╟╜╥╡{"
  821.         IconeUnInstall(17)   = "╕╤░úªw╕╦"
  822.         IconeSuivi(17)       = "¡╙ñH╛╟▓▀░O┐²"
  823.  
  824.      ''Arabe N° 18       = "arabic"
  825.         FichierLAN(18)       = "ARA"
  826.         RubriqueInf(18)      = "Arabic"
  827.         RepDidacticiel(18)   = "ANG_CBT"
  828.         IconeDidacticiel(18) = "Tutorial"
  829.         IconeUnInstall(18)   = "Uninstall"
  830.         IconeSuivi(18)       = "Tracking"
  831.  
  832.     ''SlovΦne N° 19       = "slovenian"
  833.         FichierLAN(19)       = "SLO"
  834.         RubriqueInf(19)      = "Slovenian"
  835.         RepDidacticiel(19)   = "ANG_CBT"
  836.         IconeDidacticiel(19) = "PomoΦnik"
  837.         IconeUnInstall(19)   = "Odstranitev"
  838.         IconeSuivi(19)       = "Preverjanje"
  839.  
  840.     ''Polonais N° 20         = "polish"
  841.         FichierLAN(20)       = "POL"
  842.         RubriqueInf(20)      = "Polish"
  843.         RepDidacticiel(20)   = "ANG_CBT"
  844.         IconeDidacticiel(20) = "PodrΩcznik"
  845.         IconeUnInstall(20)   = "Odinstaluj"
  846.         IconeSuivi(20)       = "îledzenie postΩp≤w u┐ytkownika"
  847.  
  848.     ''TchΦque N° 21         = "czech"
  849.         FichierLAN(21)       = "CZE"
  850.         RubriqueInf(21)      = "Czech"
  851.         RepDidacticiel(21)   = "CZE_CBT"
  852.         IconeDidacticiel(21) = "Jak na to"
  853.         IconeUnInstall(21)   = "Odinstalovat"
  854.         IconeSuivi(21)       = "Sledovßnφ postupu uΦenφ"
  855.  
  856.  
  857. END SUB
  858. '*************************************************************************
  859.