home *** CD-ROM | disk | FTP | other *** search
/ PC World 1999 August / PCWorld_1999-08_cd.bin / Novinky / zav / Disk1 / toptrain.ms_ / toptrain.ms
Text File  |  1999-01-25  |  20KB  |  569 lines

  1. '**************************************************************************
  2. '*                       toptrainer Setup Script
  3. '***************************************************************************
  4. ' Hier k÷nnen die Unterverzeichnisnamen angegeben werden, wenn die 3-fach-
  5. ' Variante des Toptrainers installiert werden soll.
  6. '
  7. ' Fⁿr alle Installationsvarianten gilt die Einstellung fⁿr den Namen der Programmgruppe
  8. ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  9. ' GroupName$ ..... Bezeichnung der Programmgruppe unter Windows 3.x bzw. des
  10. '                  Menⁿpunktes im Start|Programme-Menⁿ von Windows95
  11. '
  12. ' Fⁿr die Single-File-Variante des Top-Trainers gibt es folgende Einstellung:
  13. ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  14. ' ProgName$ ...... Bezeichnung des Icons in der Programmgruppe
  15. '
  16. ' Fⁿr die Multi-File-Variante des Top-Trainers gibt es folgende Einstellungen:
  17. ' @@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
  18. ' SubDir1$ ....... DOS-Bezeichnung des Verzeichnisses, in das die Dateien der
  19. '                  Sektion [SECTION1] kopiert werden sollen
  20. ' SubDir2$ ....... DOS-Bezeichnung des Verzeichnisses, in das die Dateien der
  21. '                  Sektion [SECTION2] kopiert werden sollen
  22. ' SubDir3$ ....... DOS-Bezeichnung des Verzeichnisses, in das die Dateien der
  23. '                  Sektion [SECTION3] kopiert werden sollen
  24. ' ProgName1$,
  25. ' ProgName2$,
  26. ' ProgName3$ ..... Bezeichnung des Icons fⁿr die Top-Trainer-Variante im Verzeichnis
  27. '                  <SubDir1$>, <SubDir2$> sowie <SubDir3$>
  28. '                  Fⁿr die Variante in <SubDir1$> wird die .STU-Datei angelegt!
  29. '**************************************************************************
  30.  
  31. '
  32. '*$DEFINE SINGLE_FILE   Entferne das "*"-Zeichen zwischen dem Anfⁿhrungszeichen
  33. '                       und dem "$"-Zeichen um ein Installationsprogramm fⁿr
  34. '                       genau eine Toptrainer-Version zu erhalten
  35. '$DEFINE CZECH         Entferne das Leerzeichen zischen dem Anfⁿhrungszeichen
  36. '                       und dem "$"-Zeichen um eine tschechische Variante des
  37. '                       Installationsscripts zu bekommen. Dazu sollten dann aber
  38. '                       auch die tschechischen Varianten der DLLs
  39. '                       MSCUISTF.DLL,
  40. '                       CUSTOM.DLL,
  41. '                       MSCOMSTF.DLL,
  42. '                       MSDETSTF.DLL,
  43. '                        MSINSSTF.DLL,
  44. '                        MSSHLSTF.DLL und
  45. '                        MSUILSTF.DLL verwendet werden!!!!
  46. '**************************************************************************
  47. '$IFDEF CZECH
  48.  REM Generelle Einstellungen fuer alle tschechischen Versionen
  49.  REM *********************************************************
  50.  CONST GroupName$ = "Psanφ na poΦφtaΦi"                                   
  51.  '$IFNDEF SINGLE_FILE                                           
  52.   REM Einstellungen fuer die tschechische Multi-Datei-Version
  53.   REM *******************************************************
  54.   CONST SubDir1$ = "ZAV1-87"                                      
  55.   CONST SubDir2$ = "ZAV-NETT"                                   
  56.   CONST SubDir3$ = "ZAV-DEMO"                                     
  57.   CONST ProgName1$ = "ZAV1-87"                            
  58.   CONST ProgName2$ = "Test rychlosti"                      
  59.   CONST Progname3$ = "ZAV-demo"                           
  60.  '$ELSE                                                         
  61.   REM Einstellung fuer die einfache tschechische Version        
  62.   CONST ProgName$ = "ZAV1-3"                                   
  63.  '$ENDIF                                                        
  64. '$ELSE
  65.  REM Einstellungen fuer alle deutschen Versionen
  66.  REM *******************************************       
  67.  CONST GroupName$ = "ZAV-Top-Trainer"
  68.  '$IFNDEF SINGLE_FILE                                           
  69.   REM Einstellungen fuer die deutsche Multi-Datei-Version
  70.   REM ***************************************************
  71.   CONST SubDir1$ = "Beginner"                                   
  72.   CONST SubDir2$ = "Exercise"                                   
  73.   CONST SubDir3$ = "Contest"                                    
  74.   CONST ProgName1$ = "DEMO AnfΣngerprogramm"                    
  75.   CONST ProgName2$ = "Trainingsprogramm"                        
  76.   CONST Progname3$ = "PC-Wettbewerb"                            
  77.  '$ELSE                                                         
  78.   REM Einstelllungen fuer die einfache deutsche Version
  79.   REM *************************************************
  80.   CONST ProgName$ = "ZAV-Top-Trainer"                           
  81.  '$ENDIF                                                        
  82. '$ENDIF
  83.  
  84. '$INCLUDE 'setupapi.inc'
  85. '$INCLUDE 'msdetect.inc'
  86. '$INCLUDE 'special.inc'
  87.  
  88. ''Dialog ID's
  89. CONST WILLKOMMEN    = 100
  90. CONST ASKQUIT       = 200
  91. CONST DESTPATH      = 300
  92. CONST EXITFAILURE   = 400
  93. CONST EXITQUIT      = 600
  94. CONST EXITSUCCESS   = 700
  95. CONST REGISTRATION  = 800
  96. CONST NAMEREG       = 900
  97. CONST SHORTCUTREG   = 1000
  98. CONST APPHELP       = 1100
  99. CONST BADPATH       = 1200
  100.  
  101. ''Bitmap ID
  102. CONST LOGO = 1
  103.  
  104. GLOBAL DEST$        ''Default destination directory.
  105. GLOBAL OPTCUR$      ''Option selection from option dialog.
  106. GLOBAL CUIDLL$
  107. GLOBAL szUserName$
  108. GLOBAL szShortCut$
  109. GLOBAL FontDir$
  110. GLOBAL IconDir$
  111. GLOBAL ButtonNumber$
  112. GLOBAL ScreenWidth$
  113. GLOBAL ScreenHeight$
  114.  
  115. DECLARE FUNCTION Install%(SourceDir$)
  116. DECLARE FUNCTION UserEditOGMSettings(ButtonNumber$,ScreenWidth$,ScreenHeight$, HELPId%, HELPDLLPROC$) AS STRING
  117. DECLARE FUNCTION VALUE(szNumber$) AS LONG
  118. DECLARE FUNCTION MakePath (szDir$, szFile$) AS STRING
  119. DECLARE FUNCTION UserAskQuit AS LONG
  120. DECLARE FUNCTION DoWelcomeDialog(CUIDLL$, WILLKOMMEN%, Proc$, APPHELP%, HELPPROC$) AS STRING
  121. DECLARE SUB InitializeInstall LIB "MSCUISTF.DLL" (hwnd%,Caption$)
  122. DECLARE SUB InitializeCustom LIB "Custom.DLL" (Caption$)
  123. DECLARE FUNCTION SectionizeWinOGMIni LIB "MSCUISTF.DLL" (SourcePath$) AS LONG
  124. DECLARE SUB UnsectionizeWinOGMIni LIB "MSCUISTF.DLL" (SourcePath$)
  125. DECLARE FUNCTION CheckForOGMEntries(sourcedir$) AS LONG
  126. DECLARE SUB CheckWinOGMIni
  127. DECLARE SUB ExecuteWinPrg LIB "MSCUISTF.DLL" (hwnd%,commandline$)
  128. Declare Sub GetUserName LIB "MSCUISTF.DLL" (szDir$)
  129. Declare SUB DecodeUserName(szName$, szShort$)
  130. Declare FUNCTION SetUserName LIB "MSCUISTF.DLL" (szDir$) AS LONG
  131. Declare FUNCTION EncodeUserName%(szName$, szShort$)
  132.  
  133. INIT:
  134.         CUIDLL$ = "custom.dll"            ''Custom user interface dll
  135.         HELPPROC$ = "FHelpDlgProc"          ''Help dialog procedure
  136.  
  137.         hinst% = HinstFrame               ''Instanz
  138.         hframe% = HwndFrame               ''Framehandle
  139.         dlg%=999999
  140.  
  141.  
  142. '$IFDEF CZECH
  143.         InitializeInstall hWndFrame(),"ZAV-TOP"
  144.         InitializeCustom  "ZAV-TOP"
  145. '$ELSE
  146.         InitializeInstall hWndFrame(),"ZAV programovanß v²uka"
  147.         InitializeCustom  "ZAV programovanß v²uka"
  148. '$ENDIF
  149.         i% = Ctl3dRegister(hinst%)               ''und 3D
  150.         i% = Ctl3dAutoSubclass(hinst%)
  151.         SetBitmap CUIDLL$, LOGO
  152. '$IFDEF CZECH
  153.         SetTitle "ZAV-TOP"
  154. '$ELSE
  155.                 SetTitle "ZAV-Top-Trainer"
  156. '$ENDIF
  157.  
  158.         IF (GetProcessorType() < 3) OR (GetWindowsMajorVersion() < 3) OR (GetWindowsMajorVersion() = 3) AND (GetWindowsMinorVersion < 1) THEN
  159. '$IFDEF CZECH
  160.             i% = DoMsgBox("Program ZAV-TOP vy₧aduje nejmΘn∞ poΦφtaΦ °ady 386 s instalovan²mi Windows minimßln∞ 3.1",AppName$,MB_OK+MB_ICONHAND)
  161. '$ELSE
  162.             i% = DoMsgBox("Der ZAV-Top-Trainer ben÷tigt zumindest einen 80386-Rechner"+CHR$(13)+"mit Windows ab der Version 3.1",AppName$,MB_OK+MB_ICONHAND)
  163. '$ENDIF
  164.             ERROR 1026     ' willkⁿrlicher Code
  165.         END IF
  166.  
  167.  
  168.         SrcDir$ = GetSymbolValue("STF_SRCINFPATH")
  169.         IF SrcDir$ = "" THEN
  170.             SrcDir$ = GetSymbolValue("STF_CWDDIR") + "TOPTRAIN.INF"
  171.         END IF
  172.         ReadInfFile SrcDir$
  173.  
  174.         SetRestartDir GetWindowsDir()
  175.  
  176.  
  177.         RestoreOrgIni = CheckForOGMEntries(GetSymbolValue("STF_SRCDIR"))
  178.  
  179.  
  180. '$IFDEF CZECH
  181.         DEST$ = "C:\ZAV-TOP"
  182. '$ELSE
  183.         DEST$ = "C:\TOPTRAIN"
  184. '$ENDIF
  185.  
  186. '$IFDEF DEBUG
  187. REM        i% = SetSizeCheckMode(scmOnIgnore)    '' could use scmOff; def = scmOnFatal
  188. REM        WinDrive$ = MID$(GetWindowsDir, 1, 1)
  189. REM        IF IsDriveValid(WinDrive$) = 0 THEN
  190. REM            i% = DoMsgBox("Windows drive ('"+WinDrive$+"') is not a valid drive.", "DEBUG", MB_TASKMODAL+MB_ICONHAND+MB_OK)
  191. REM                GOTO QUIT
  192. REM        END IF
  193. '$ENDIF ''DEBUG
  194.  
  195.  
  196. WELCOME:
  197.         sz$ = UIStartDlg(CUIDLL$, WILLKOMMEN, "FInfoDlgProc", APPHELP, HELPPROC$)
  198.         IF sz$ = "CONTINUE" THEN
  199.             UIPop 1
  200.         ELSE
  201.             UIPop 1
  202.             IF UserAskQuit THEN
  203.                 dlg%=EXITQUIT
  204.                 GOTO QUIT
  205.             END IF
  206.             GOTO WELCOME
  207.         END IF
  208.  
  209.  
  210.    DecodeUserName szUserName$, szShortCut$
  211.  
  212.    If szUserName$="SHUTDOWN" Then
  213.       ERROR 1026
  214.    END IF
  215. REGISTER1:
  216.   SetSymbolValue "NameIn", szUserName$
  217.   SetSymbolValue "OrgIn", szShortCut$
  218.   sz$ = UIStartDlg(CUIDLL$, REGISTRATION, "FNameOrgDlgProc", 0, "")
  219.   UIPop 1
  220.   SELECT CASE sz$
  221.   CASE "CONTINUE"
  222.         szUserName$ = GetSymbolValue("NameOut")
  223.         szShortCut$ = GetSymbolValue("OrgOut")
  224.         IF szUserName$ = "" THEN
  225.             sz$ = UIStartDlg(CUIDLL$, NAMEREG, "FInfo0DlgProc", 0, "")
  226.             UIPop 1
  227.             GOTO REGISTER1
  228.         END IF
  229.         IF szShortCut$ = "" THEN
  230.             sz$ = UIStartDlg(CUIDLL$, SHORTCUTREG, "FInfo0DlgProc", 0, "")
  231.             UIPop 1
  232.             GOTO REGISTER1
  233.         '' WinExec(szProgLine$, cmdShow$)
  234.         '' whatever you want
  235.         END IF
  236.  
  237.     CASE "EXIT"
  238.         GOSUB ASKQUIT
  239.         GOTO REGISTER1
  240.  
  241.     END SELECT
  242.     UIPop 1
  243.  
  244.  
  245. UserEditOGM:
  246.         SELECT CASE UserEditOGMSettings(ButtonNumber$,ScreenWidth$,ScreenHeight$,APPHELP, HELPPROC$)
  247.             CASE "CONTINUE"
  248.                 UIPop 1
  249.             CASE "BACK"
  250.                 UIPop 1
  251.                 goto Welcome
  252.             CASE "EXIT"
  253.                     dlg%=EXITQUIT
  254.                     GOTO QUIT
  255.         END SELECT
  256.  
  257. GETPATH:
  258.         SetSymbolValue "EditTextIn", DEST$
  259.         SetSymbolValue "EditFocus", "END"
  260.  
  261. GETPATHL1:
  262.      sz$ = UIStartDlg(CUIDLL$, DESTPATH, "FEditDlgProc", 0, "")
  263.      DEST$ = GetSymbolValue("EditTextOut")
  264.  
  265.      IF sz$ = "CONTINUE" THEN
  266.             IF IsDirWritable(DEST$) = 0 THEN
  267.                 GOSUB BADPATH
  268.                 GOTO GETPATHL1
  269.                 END IF
  270.                 UIPop 1
  271.         ELSEIF sz$ = "REACTIVATE" THEN
  272.                 GOTO GETPATHL1
  273.         ELSEIF sz$ = "BACK" THEN
  274.                 UIPop 1
  275.             GOTO UserEditOGM
  276.         ELSE
  277.                 GOSUB ASKQUIT
  278.                 GOTO GETPATH
  279.         END IF
  280.  
  281.         If FontDir$="" Then
  282.             FontDir$=MakePath(Dest$,"OGM\FONTS")
  283.         END IF
  284.         IF IconDir$="" Then
  285.             IF FontDir$="" Then
  286.                 IconDir$=MakePath(Dest$,"OGM\ICONS")
  287.             ELSE
  288.                 IconDir$=FontDir$
  289.                 WHILE (IconDir$ > "") AND (Mid$(IconDir$,Len(IconDir$),1)<>"\")
  290.                     IconDir$=MID$(IconDir$,1,Len(IconDir$)-1)
  291.                 WEND
  292.                 IF IconDir$="" THEN    ' Some really queer path entry
  293.                     IconDir$=FontDir$+"\ICONS"
  294.                 ELSE
  295.                     IconDir$=IconDir$+"ICONS"
  296.                 END IF
  297.             END IF
  298.         END IF
  299.         reboot%=Install%(GetSymbolValue("STF_SRCDIR"))
  300.         CheckWinOgmIni
  301.  
  302.     CreateProgmanGroup GroupName$, "", cmoNone
  303.     ShowProgmanGroup  GroupName$, 1, cmoNone
  304.     RUNDIR$ = MakePath (DEST$, "wtoptrai.exe")
  305. '$IFNDEF SINGLE_FILE
  306.     CreateProgmanItem  GroupName$, ProgName1$, RUNDIR$ , Makepath(DEST$,"TYPEWRIT.ICO")+",0,0,0,"+MakePath(Dest$,SubDir1$), cmoOverwrite
  307.     CreateProgmanItem  GroupName$, ProgName2$, RUNDIR$ , Makepath(DEST$,"TYPEWRIT.ICO")+",0,1,0,"+MakePath(Dest$,SubDir2$), cmoOverwrite
  308.     CreateProgmanItem  GroupName$, ProgName3$, RUNDIR$ , Makepath(DEST$,"TYPEWRIT.ICO")+",0,2,0,"+MakePath(Dest$,SubDir3$), cmoOverwrite
  309.     ChDir MakePath(DEST$,SubDir1$)
  310. '$ELSE
  311.         CreateProgManItem GroupName$, ProgName$, RUNDIR$ , Makepath(DEST$,"TYPEWRIT.ICO")+",0,0,0,"+Dest$, cmoOverwrite
  312.                 ChDir MakePath(DEST$,"")
  313. '$ENDIF
  314.   IF EncodeUserName%(szUserName$, szShortCut$) <> 1 THEN
  315.    Error 1027
  316.   END IF
  317.     szCommandLine$ =RunDir$+" -install "+CHR$(34)+szUserName$+chr$(34)+" "+szShortCut$
  318.     ExecuteWinPrg hWndFrame(),RunDir$+" -install "+CHR$(34)+szUserName$+chr$(34)+" "+szShortCut$
  319.     ChDir GetSymbolValue("STF_SRCDIR")
  320.   If RestoreOrgIni = 1 THEN
  321.    UnSectionizeWinOgmIni MakePath(GetWindowsDir(),"WINOGM.INI")
  322.   END IF
  323.     dlg%=EXITSUCCESS
  324.  
  325. QUIT:
  326.         ON ERROR GOTO ERRQUIT
  327.  
  328.         IF (ERR = 0) AND (dlg%=EXITSUCCESS) THEN
  329.                 dlg% = EXITSUCCESS
  330.         ELSEIF (ERR = STFQUIT) OR (dlg%=EXITQUIT) THEN
  331.                 dlg% = EXITQUIT
  332.         ELSE
  333.                 dlg% = EXITFAILURE
  334.      END IF
  335.  
  336. QUITL1:
  337.         sz$ = UIStartDlg(CUIDLL$, dlg%, "FInfo0DlgProc", 0, "")
  338.         IF sz$ = "REACTIVATE" THEN
  339.                 GOTO QUITL1
  340.         END IF
  341.         UIPop 1
  342.  
  343.         i% = Ctl3dUnregister(hinst%)
  344.         END
  345.  
  346. ERRQUIT:
  347. '$IFDEF CZECH
  348.         i% = DoMsgBox("InstalaΦnφ program je poÜkozen!\nInformujte dodavatele.", "SETUP - informace", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  349. '$ELSE
  350.         i% = DoMsgBox("Das Setup des ZAV-Top-Trainers ist beschΣdigt \n Benachrichtigen sie Ihren HΣndler", "Setup Benachrichtigung", MB_OK+MB_TASKMODAL+MB_ICONHAND)
  351. '$ENDIF
  352.         i% = Ctl3dUnregister(hinst%)
  353.         END
  354.  
  355. BADPATH:
  356.         sz$ = UIStartDlg(CUIDLL$, BADPATH, "FInfo0DlgProc", 0, "")
  357.         IF sz$ = "REACTIVATE" THEN
  358.             GOTO BADPATH
  359.         END IF
  360.         UIPop 1
  361.         RETURN
  362.  
  363.  
  364.  
  365. ASKQUIT:
  366.         sz$ = UIStartDlg(CUIDLL$, ASKQUIT, "FQuitDlgProc", 0, "")
  367.  
  368.         IF sz$ = "EXIT" THEN
  369.             UIPopAll
  370.             ERROR STFQUIT
  371.             GOTO QUIT
  372.         ELSE
  373.             UIPop 1
  374.         END IF
  375.         RETURN
  376.  
  377.  
  378.  
  379. '**
  380. '** Purpose:
  381. '**     Builds the copy list and performs all installation operations.
  382. '** Arguments:
  383. '**     none.
  384. '** Returns:
  385. '**     none.
  386. '*************************************************************************
  387. Function Install%(SourceDir$) STATIC
  388.  
  389.     AddToBillboardList "Custom.dll", 5000, "FModelessDlgProc", 100
  390.     AddToBillboardList "Custom.dll", 5000, "FModelessDlgProc", 100
  391.     AddToBillboardList "Custom.dll", 5000, "FModelessDlgProc", 100
  392.     AddToBillboardList "Custom.dll", 5000, "FModelessDlgProc", 100
  393.     AddToBillboardList "Custom.dll", 5000, "FModelessDlgProc", 100
  394.     AddToBillboardList "Custom.dll", 5000, "FModelessDlgProc", 100
  395.     AddToBillboardList "Custom.dll", 5000, "FModelessDlgProc", 100
  396.  
  397.      CreateDir DEST$, cmoNone
  398. '$IFNDEF SINGLE_FILE
  399.      CreateDir MakePath(Dest$,SubDir1$), cmoNone
  400.      CreateDir MakePath(Dest$,SubDir2$), cmoNone
  401.      CreateDir MakePath(Dest$,SubDir3$), cmoNone
  402. '$ENDIF
  403.      IF Mid$(FontDir$,1,Len(Dest$))=Dest$ THEN
  404.         CreateDir MakePath(Dest$,"OGM"),cmoNone
  405.      END IF
  406.      CreateDir FontDir$,cmoNone
  407.      CreateDir IconDir$,cmoNone
  408.          AddSectionFilesToCopyList "Files", SourceDir$, DEST$
  409. '$IFNDEF SINGLE_FILE
  410.          AddSectionFilesToCopyList "SECTION1", SourceDir$, MakePath(Dest$,SubDir1$)
  411.          AddSectionFilesToCopyList "SECTION2", SourceDir$, MakePath(Dest$,SubDir2$)
  412.          AddSectionFilesToCopyList "SECTION3", SourceDir$, MakePath(Dest$,SubDir3$)
  413. '$ENDIF
  414.      ' ins Windowsverzeichnis
  415.      AddSectionFilesToCopyList "WINDOWS", SourceDir$, GetWindowsDir()
  416.      ' ins Systemverzeichnis
  417.      AddSectionFilesToCopyList "SYSTEM", SourceDir$, GetWindowsSysDir()
  418.      ' ins die verschiedenen OGM-Verzeichnisse
  419.          AddSectionFilesToCopyList "FONTS", SourceDir$, FontDir$
  420.          AddSectionFilesToCopyList "ICONS", SourceDir$, IconDir$
  421.      i%=Ctl3dUnregister(hInstFrame())
  422.      SetCopyGaugePosition 100, 200
  423.      CopyFilesInCopyList
  424.      Install%=RestartListEmpty()
  425.      i%=Ctl3DRegister(hInstFrame())
  426.      i%=Ctl3dAutoSubClass(hInstFrame())
  427. END FUNCTION
  428.  
  429. '*****************************************************************************
  430. '**
  431. '**    PARAMETERS
  432. '**        IN/OUT    ButtonNumber$        Number of MouseButtons
  433. '**        IN/OUT    ScreenWidth$        Displayable Width of Screen in mm
  434. '**        IN/OUT    ScreenHeight$        Displayable Height of Screen in mm
  435. '**        IN            HELPID%               resource id of help window
  436. '**        IN            HELPDLLPROC$        name of help procedure in CUI DLL
  437. '**
  438. '*****************************************************************************
  439. FUNCTION UserEditOGMSettings(ButtonNumber$,ScreenWidth$,ScreenHeight$, HELPID%, HELPDLLPROC$) STATIC AS STRING
  440. OPTL1:
  441.      SetSymbolValue "ButtonsIn",ButtonNumber$
  442.      SetSymbolValue "WidthIn",ScreenWidth$
  443.      SetSymbolValue "HeightIn",ScreenHeight$
  444.      sz$ = UIStartDlg("mscuistf.dll", 800, "FScreenSizeDlgProc", 900,"FHelpDlgProc")
  445.      ButtonNumber$ = GetSymbolValue("MouseButtonCount")
  446.      ScreenWidth$=GetSymbolValue("WidthOut")
  447.      ScreenHeight$=GetSymbolValue("HeightOut")
  448.      IF sz$ = "CONTINUE" THEN
  449.       UIPop(1)
  450.       UserEditOGMSettings="CONTINUE"
  451.      ELSEIF sz$ = "BACK" THEN
  452.       UIPop 1
  453.       UserEditOGMSettings = "BACK"
  454.      ELSEIF sz$ = "REACTIVATE" THEN
  455.       GOTO OPTL1
  456.      ELSE
  457.       UIPop 1
  458.       IF UserASKQUIT THEN
  459.         UserEditOGMSettings = "EXIT"
  460.       ELSE
  461.         GOTO OPTL1
  462.       END IF
  463.      END IF
  464.      RemoveSymbol "HeightIn"
  465.      RemoveSymbol "WidthIn"
  466.      RemoveSymbol "ButtonsIn"
  467.      RemoveSymbol "MouseButtonCount"
  468.      RemoveSymbol "WidthOut"
  469.      RemoveSymbol "HeightOut"
  470. END FUNCTION
  471.  
  472.  
  473. FUNCTION VALUE(szNumber$) STATIC AS LONG
  474.   DIM v AS LONG
  475.   v = 0
  476.   FOR i%=1 TO LEN(szNumber$)
  477.     v = v*10 + VAL(MID$(szNumber$,i%,1))
  478.   NEXT
  479.   VALUE = v
  480. END FUNCTION
  481.  
  482. '**
  483. '** Purpose:
  484. '**     Appends a file name to the end of a directory path,
  485. '**     inserting a backslash character as needed.
  486. '** Arguments:
  487. '**     szDir$  - full directory path (with optional ending "\")
  488. '**     szFile$ - filename to append to directory
  489. '** Returns:
  490. '**     Resulting fully qualified path name.
  491. '*************************************************************************
  492. FUNCTION MakePath (szDir$, szFile$) STATIC AS STRING
  493.         IF szDir$ = "" THEN
  494.                 MakePath = szFile$
  495.         ELSEIF szFile$ = "" THEN
  496.                 MakePath = szDir$
  497.         ELSEIF MID$(szDir$, LEN(szDir$), 1) = "\" THEN
  498.                 MakePath = szDir$ + szFile$
  499.         ELSE
  500.                 MakePath = szDir$ + "\" + szFile$
  501.         END IF
  502. END FUNCTION
  503.  
  504. FUNCTION UserAskQuit STATIC AS LONG
  505.     sz$ = UIStartDlg("custom.dll", ASKQUIT, "FQuitDlgProc", 0, "")
  506.     IF sz$ = "EXIT" THEN
  507.         UIPopAll
  508.         UserAskQuit = TRUE
  509.     ELSE
  510.         UIPop 1
  511.         UserAskQuit = FALSE
  512.     END IF
  513. END FUNCTION
  514.  
  515. FUNCTION CheckForOGMEntries(SourceDir$) STATIC AS LONG
  516.     IF DoesFileExist(MakePath(GetWindowsDir(),"WINOGM.INI"),femExists)=0 THEN
  517.         AddSectionFilesToCopyList "WINOGMINI", SourceDir$, GetWindowsDir()
  518.         FontDir$=""
  519.         IconDir$=""
  520.         ButtonNumber$="2"
  521.         ScreenWidth$="261"
  522.         ScreenHeight$="200"
  523.     ELSE
  524.     CheckForOGMEntries = SectionizeWinOgmIni(MakePath(GetWindowsDir(),"WINOGM.INI"))
  525.       FontDir$=GetIniKeyString(MakePath(GetWindowsDir,"WinOGM.INI"),"OGM Einstellungen","FontPath")
  526.       IconDir$=GetIniKeyString(MakePath(GetWindowsDir,"WinOGM.INI"),"OGM Einstellungen","IconPath")
  527.       ScreenSiz$=GetIniKeyString(MakePath(GetWindowsDir,"WINOGM.INI"),"OGM Einstellungen","ScreenSize")
  528.       ButtonNumber$=GetIniKeyString(MakePath(GetWindowsDir,"WINOGM.INI"),"OGM Einstellungen","MouseButtonNumber")
  529.       i%=InStr(ScreenSiz$,"x")
  530.       ScreenWidth$=Mid$(ScreenSiz$,1,i%-1)
  531.       ScreenHeight$=Mid$(ScreenSiz$,i%+1)
  532.     END IF
  533. END FUNCTION
  534.  
  535. SUB CheckWinOGMIni STATIC
  536.     sz$=MakePath(GetWindowsDir(),"WINOGM.INI")
  537.     CreateIniKeyValue sz$, "OGM Einstellungen", "FontPath" ,FontDir$, cmoVital + cmoOverwrite
  538.     CreateIniKeyValue sz$, "OGM Einstellungen", "UseWindowsSliders","false",cmoVital+cmoOverWrite
  539.     CreateIniKeyValue sz$, "OGM Einstellungen", "UseWindowsWindows","true",cmoVital+cmoOverWrite
  540.     CreateIniKeyValue sz$, "OGM Einstellungen", "UseWindowsWindows","true",cmoVital+cmoOverWrite
  541.     CreateIniKeyValue sz$, "OGM Einstellungen", "UseWindowsColours","true",cmoVital+cmoOverWrite
  542.     CreateIniKeyValue sz$, "OGM Einstellungen", "UseWindowsControls","true",cmoVital+cmoOverWrite
  543.     CreateIniKeyValue sz$, "OGM Einstellungen", "Controls3D","true",cmoVital+cmoOverWrite
  544.     CreateIniKeyValue sz$, "OGM Einstellungen", "IncrementalSelectionColour","0,0,0",cmoVital+cmoOverWrite
  545.     CreateIniKeyValue sz$, "OGM Einstellungen", "Autotopping","true",cmoVital+cmoOverWrite
  546.     CreateIniKeyValue sz$, "OGM Einstellungen", "UseWindowsCursor","true",cmoVital+cmoOverWrite
  547.     CreateIniKeyValue sz$, "OGM Einstellungen", "ScreenSize" ,ScreenWidth$+"x"+ScreenHeight$, cmoVital + cmoOverwrite
  548.     CreateIniKeyValue sz$, "OGM Einstellungen", "MouseButtonNumber", ButtonNumber$, cmoVital + cmoOverWrite
  549.     CreateIniKeyValue sz$, "OGM Einstellungen", "IconPath" ,IconDir$, cmoVital + cmoOverwrite
  550. END SUB
  551.  
  552. SUB DecodeUserName(szName$, szShort$) STATIC
  553. '  EncodeUserName "                                                    ","        "
  554.   GetUserName GetSymbolValue("STF_SRCDIR")
  555.   szName$ = GetSymbolValue("NameOut")
  556.   szShort$ = GetSymbolValue("OrgOut")
  557.   RemoveSymbol "NameOut"
  558.   RemoveSymbol "OrgOut"
  559. END SUB
  560.  
  561. FUNCTION EncodeUserName%(szName$, szShort$) STATIC
  562.   SetSymbolValue "NameIn", szName$
  563.   SetSymbolValue "OrgIn", szShort$
  564.   EncodeUserName = SetUserName(GetSymbolValue("STF_SRCDIR"))
  565.   RemoveSymbol "NameIn"
  566.   RemoveSymbol "OrgIn"
  567. END FUNCTION
  568.  
  569.