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