home *** CD-ROM | disk | FTP | other *** search
/ Chip Hitware 7 / Chip_Hitware_Vol_07.iso / chiphit7 / tools / mhtask / setup.scr < prev    next >
Text File  |  1996-10-09  |  11KB  |  280 lines

  1.  
  2. // Application Variables
  3. SET %Caption%="Setup"
  4. SET %Application%="MH-TASK 2.1"
  5. SET %InstallPath%="C:\MH-TASK"
  6. SET %InstallDrive%="C:"
  7. SET %Option%=1
  8. SET %Option1%=TRUE
  9. SET %IniFile%="%Application%.INI"
  10. GetProfileString("Install", "Path", "%InstallPath%", "%IniFile%", %InstallPath%)
  11. AddChar(%InstallPath%, "\")
  12. SetLanguage("German")
  13.  
  14.  
  15. // Create all the objects
  16. CreateBackdrop("DEFAULTBACKDROP")
  17. CreateControl("Text","%Application% Setup",-1,20,10,0,0,1048576,"Times New Roman",50,3,16777215,0)
  18. CreateControl("Text","",-1,20,0,0,0,1114112,"Times New Roman",17,3,16777215,0)
  19. EndObject()
  20.  
  21.  
  22. // Close Setup Program
  23. HideSetup()
  24.  
  25.  
  26. // Display appropriate backdrop
  27. GetScreenWidth(%Width%)
  28. SET %BackDrop%="DEFAULTBACKDROP"
  29. IF "%BackDrop%" != "(None)" ShowBackdrop("%BackDrop%")
  30.  
  31.  
  32. // Determine if s/w is already installed
  33. SET %DeInstall%="%InstallPath%DEINST.INF"
  34. GetProfileString("Install", "DeInstall", "%DeInstall%", "%IniFile%", %DeInstall%)
  35. CheckExists("%DeInstall%")
  36. IF %ERROR% == FALSE SET %DeInstall%="%InstallPath%MHTSK21D.SCR"
  37. CheckExists("%DeInstall%")
  38. SET %Installed% = %ERROR%
  39.  
  40.  
  41. // Welcome Dialog
  42. SET %Message1%="Willkommen bei der %Application% Installation."
  43. SET %Message2%="Dieses Programm installiert %Application% auf Ihrer Festplatte in dem von Ihnen angegebenen Verzeichnis."
  44. SET %Message3%=""
  45. DialogBox("Welcome")
  46. IF %ERROR% == IDCANCEL GOTO :EXIT
  47.  
  48.  
  49. // De-Installation option
  50. :BACK1
  51. SET %Message1%="Bitte wΣhlen Sie aus den folgenden Optionen:"
  52. SET %Message2%="%Application% installieren"
  53. SET %Message3%="%Application% deinstallieren"
  54. DialogBox("DEINSTALL")
  55. IF %ERROR%==IDCANCEL GOTO :EXIT
  56. IF %ERROR%==IDBUTTON2 GOTO :DEINSTALL
  57.  
  58.  
  59. // Sort out where to install the software
  60. // but only if the software isn't already installed
  61. IF %Installed% == TRUE GOTO :INSTALLED
  62. // Ask the user where to install the software
  63. // but only if the software isn't already installed
  64. :RETRY
  65. SET %Message1%="Das Installationsprogramm kopiert die Dateien von %Application% in das Verzeichnis:"
  66. DialogBox("AskPath")
  67. IF %ERROR% == IDBACK GOTO :BACK1
  68. IF %ERROR% == IDCANCEL GOTO :EXIT
  69.  
  70. // Create installation directory
  71. AddChar(%InstallPath%, "\")
  72. SET %MakeDir% = %InstallPath%
  73. SET %Temp% = Len(%MakeDir%) - 1
  74. IF %Temp% > 2 SET %MakeDir% = Left(%MakeDir%, %Temp%)
  75. MkDir(%MakeDir%)
  76. Open("%MakeDir%\INSTALL.TST", 1, WRITE)
  77. IF %ERROR% == TRUE GOTO :DIRERROR
  78. Close(1)
  79. Delete("%MakeDir%\INSTALL.TST")
  80.  
  81.  
  82. // Save the installation directory/de-install script
  83. WriteProfileString("Install", "Path", "%MakeDir%", "%IniFile%")
  84. WriteProfileString("Install", "DeInstall", "%DeInstall%", "%IniFile%")
  85. SET %MakeDir% = ""
  86. SET %Temp% = ""
  87. :INSTALLED
  88.  
  89.  
  90. AppendFile("// De-Installations Option","%DeInstall%")
  91. AppendFile("// Diese Datei enhΣlt wichtige Daten zur De-Installation:","%DeInstall%")
  92. AppendFile("// MH-Task 2.1","%DeInstall%")
  93. AppendFile("// Bitte diese Datein nicht verΣndern","%DeInstall%")
  94. AppendFile("","%DeInstall%")
  95.  
  96.  
  97. // Check for space availability
  98. GetDiskSpace(%InstallDrive%)
  99. SET %Space%=%ERROR%
  100. SET %Required%=1347584
  101. IF %Space% >= %Required% GOTO :GOTSPACE
  102. MessageBox("%Application% ben÷tigt %Required% Bytes auf der Festplatte, aber auf Ihrem Laufwerk %InstallDrive% sind nur %Space% Bytes frei.||Wollen Sie die Installation trotzdem fortsetzen ?", "%Caption%", MB_YESNO, MB_ICONQUESTION)
  103. IF %ERROR% == IDNO GOTO :EXIT
  104. :GOTSPACE
  105.  
  106.  
  107. // Unprotect files before copying
  108. IF %Option% AND 1 != 0 SetFileAttr("%SystemDirectory%BWCC.DLL", 0, 0, 0, 0)
  109.  
  110.  
  111. // Do the file copying
  112. SET %TotalBlocks%=17
  113. CopyFile(%TotalBlocks%)
  114. CheckExists("%CurrentDrive%DISK01", "Bitte legen Sie die Diskette mit der Aufschrift 'DISK01' in das Laufwerk")
  115. IF %ERROR% == IDCANCEL GOTO :EXIT
  116. AppendFile("Delete(^034%InstallPath%BESTELLU.TXT^034)","%DeInstall%")
  117. "BESTELLU.TX_", "%InstallPath%BESTELLU.TXT", "Kopiere:", TRUE
  118. SET %Skip%=0
  119. Release()
  120. IF %Installed% == FALSE Register("%SystemDirectory%BWCC.DLL")
  121. AppendFile("UnRegister(^034%SystemDirectory%BWCC.DLL^034)","%DeInstall%")
  122. SET %Skip%=1
  123. SetGaugeText("Kopiere:", "%CurrentDirectory%BWCC.DL_", "%SystemDirectory%BWCC.DLL")
  124. GetModuleInUse("BWCC.DLL")
  125. IF %ERROR% == FALSE GOTO :COPY1
  126. MessageBox("Setup hat bemerkt, da▀ die Datei||BWCC.DLL||bereits von einem anderen Windows-Programm benutzt wird.||Wollen Sie sie wirklich ⁿberschreiben ?","%Caption%",MB_YESNO,MB_ICONQUESTION)
  127. IF %ERROR% == IDNO GOTO :OVER1
  128. :COPY1
  129. ConfirmOverwrite("%SystemDirectory%BWCC.DLL", "%CurrentDirectory%BWCC.DL_", "Setup hat bemerkt, da▀ die Datei '$OLDFILE$' bereits existiert.||Wollen Sie sie wirklich ⁿberschreiben ?", 0)
  130. IF %ERROR% == IDNO GOTO :OVER1
  131. "BWCC.DL_", "%SystemDirectory%BWCC.DLL", "Kopiere:", TRUE
  132. SET %Skip%=0
  133. :OVER1
  134. UpdateGauge(%Skip%)
  135. SET %Skip%=0
  136. Release()
  137. AppendFile("SetFileAttr(^034%SystemDirectory%CTL3D.DLL^034, 0, 0, 0, 0)","%DeInstall%")
  138. IF %Installed% == FALSE Register("%SystemDirectory%CTL3D.DLL")
  139. AppendFile("UnRegister(^034%SystemDirectory%CTL3D.DLL^034)","%DeInstall%")
  140. SET %Skip%=1
  141. SetGaugeText("Kopiere:", "%CurrentDirectory%CTL3D.DL_", "%SystemDirectory%CTL3D.DLL")
  142. GetModuleInUse("CTL3D.DLL")
  143. IF %ERROR% == FALSE GOTO :COPY2
  144. MessageBox("Setup hat bemerkt, da▀ die Datei||CTL3D.DLL||bereits von einem anderen Windows-Programm benutzt wird.||Wollen Sie sie wirklich ⁿberschreiben ?","%Caption%",MB_YESNO,MB_ICONQUESTION)
  145. IF %ERROR% == IDNO GOTO :OVER2
  146. :COPY2
  147. ConfirmOverwrite("%SystemDirectory%CTL3D.DLL", "%CurrentDirectory%CTL3D.DL_", "Setup hat bemerkt, da▀ die Datei '$OLDFILE$' bereits existiert.||Wollen Sie sie wirklich ⁿberschreiben ?", 0)
  148. IF %ERROR% == IDNO GOTO :OVER2
  149. "CTL3D.DL_", "%SystemDirectory%CTL3D.DLL", "Kopiere:", TRUE
  150. SET %Skip%=0
  151. :OVER2
  152. UpdateGauge(%Skip%)
  153. AppendFile("Delete(^034%InstallPath%FILE_ID.DIZ^034)","%DeInstall%")
  154. "FILE_ID.DIZ", "%InstallPath%", "Kopiere:", TRUE
  155. AppendFile("Delete(^034%InstallPath%HANDBUCH.TXT^034)","%DeInstall%")
  156. "HANDBUCH.TX_", "%InstallPath%HANDBUCH.TXT", "Kopiere:", TRUE
  157. AppendFile("Delete(^034%InstallPath%LICENCE.TXT^034)","%DeInstall%")
  158. "LICENCE.TX_", "%InstallPath%LICENCE.TXT", "Kopiere:", TRUE
  159. AppendFile("Delete(^034%InstallPath%LOG.DAT^034)","%DeInstall%")
  160. "LOG.DA_", "%InstallPath%LOG.DAT", "Kopiere:", TRUE
  161. AppendFile("Delete(^034%InstallPath%MH_F.DLL^034)","%DeInstall%")
  162. "MH_F.DL_", "%InstallPath%MH_F.DLL", "Kopiere:", TRUE
  163. AppendFile("Delete(^034%InstallPath%MH_TSK21.EXE^034)","%DeInstall%")
  164. "MH_TSK21.EX_", "%InstallPath%MH_TSK21.EXE", "Kopiere:", TRUE
  165. AppendFile("Delete(^034%InstallPath%NEWS.TXT^034)","%DeInstall%")
  166. "NEWS.TX_", "%InstallPath%NEWS.TXT", "Kopiere:", TRUE
  167. AppendFile("Delete(^034%InstallPath%PROGRAMS.EXE^034)","%DeInstall%")
  168. "PROGRAMS.EX_", "%InstallPath%PROGRAMS.EXE", "Kopiere:", TRUE
  169. AppendFile("Delete(^034%InstallPath%REGISTER.EXE^034)","%DeInstall%")
  170. "REGISTER.EX_", "%InstallPath%REGISTER.EXE", "Kopiere:", TRUE
  171. AppendFile("Delete(^034%InstallPath%REGISTER.WRI^034)","%DeInstall%")
  172. "REGISTER.WRI", "%InstallPath%", "Kopiere:", TRUE
  173. AppendFile("Delete(^034%InstallPath%SEARCH.EXE^034)","%DeInstall%")
  174. "SEARCH.EX_", "%InstallPath%SEARCH.EXE", "Kopiere:", TRUE
  175. AppendFile("Delete(^034%InstallPath%START.EXE^034)","%DeInstall%")
  176. "START.EX_", "%InstallPath%START.EXE", "Kopiere:", TRUE
  177. AppendFile("Delete(^034%InstallPath%MH_TASK.HLP^034)","%DeInstall%")
  178. "MH_TASK.HL_", "%InstallPath%MH_TASK.HLP", "Kopiere:", TRUE
  179. AppendFile("Delete(^034%InstallPath%FRAGEN.WRI^034)","%DeInstall%")
  180. "FRAGEN.WR_", "%InstallPath%FRAGEN.WRI", "Kopiere:", TRUE
  181. EndCopyFile()
  182.  
  183.  
  184.  
  185.  
  186. // Protect files after copying
  187. IF %Option% AND 1 != 0 SetFileAttr("%SystemDirectory%CTL3D.DLL", 1, 0, 0, 0)
  188.  
  189.  
  190. // Now setup a new program manager group and its icons
  191. MessageBox("Setup kann fⁿr %Application% eine Gruppe im Programm-Manager erstellen.||M÷chten Sie eine Gruppe mit|den entsprechenden Symbolen erstellen ?", "%Caption%", MB_YESNO, MB_ICONQUESTION)
  192. Set %PmGrp% = %Error%
  193. IF %ERROR% == IDNO GOTO :NOPMGROUP
  194.  
  195. MakeGroup("%Application%", "")
  196. IF %Option% AND 1 != 0 MakeIcon("MH-TASK 2.1", "%InstallPath%MH_TSK21.EXE ")
  197. IF %Option% AND 1 != 0 MakeIcon("Registrierung mit Code", "%InstallPath%REGISTER.EXE ")
  198. IF %Option% AND 1 != 0 MakeIcon("Registrierungsformular", "%InstallPath%REGISTER.WRI ")
  199. IF %Option% AND 1 != 0 MakeIcon("MH-Task Hilfe", "%InstallPath%MH_TASK.HLP ")
  200. MakeGroup("Autostart", "")
  201. IF %Option% AND 1 != 0 MakeIcon("MH-TASK 2.1 (fⁿr automatischen Start)", "%InstallPath%MH_TSK21.EXE ")
  202. :NOPMGROUP
  203.  
  204.  
  205. // Done
  206. :SUCCESS
  207. SET %Message1%="|Die Installation von %Application% wurde erfolgreich abgeschlossen."
  208. SET %Message2%=""
  209. DialogBox("OkBox")
  210. GOTO :END
  211.  
  212.  
  213. // User decided to quit
  214. :EXIT
  215. EndCopyFile()
  216. SET %Message1%="Die Installation wurde abgebrochen. Um %Application% zu installieren, mⁿssen Sie das Installationsprogramm spΣter noch einmal ausfⁿhren."
  217. SET %Message2%=""
  218. DialogBox("OkBox")
  219. GOTO :END
  220.  
  221.  
  222. // Error
  223. :ERROR
  224. EndCopyFile()
  225. SET %Message1%="WΣhrend der Installation von %Application% trat ein Fehler auf."
  226. SET %Message2%="|%Application% wurde nicht vollstΣndig installiert."
  227. DialogBox("OkBox")
  228. GOTO :END
  229.  
  230.  
  231. // Failed to create install directory
  232. :DIRERROR
  233. SET %Message1%="|Installations-Verzeichnis '%MakeDir%' konnte nicht angelegt werden."
  234. SET %Message2%="|Kann %Application% nicht im angegebenen Verzeichnis installieren."
  235. DialogBox("OkBox")
  236. GOTO :RETRY
  237.  
  238.  
  239. // De-Installation option
  240. :DEINSTALL
  241. // Check to see if the software has been installed correctly
  242. CheckExists("%DeInstall%")
  243. IF %ERROR%==FALSE GOTO :NOTINSTALLED
  244. // Software has been installed
  245. MessageBox("%Application% wird von Ihrem Computer entfernt.||Alle Dateien, Verzeichnisse und die zugeh÷rige Gruppe im Programm-Manager werden gel÷scht.||Sind Sie sicher, da▀ Sie fortfahren wollen ?", "%Caption%", MB_YESNO, MB_ICONQUESTION)
  246. IF %ERROR% == IDYES GOTO :DODELETE
  247. SET %Message1% = "Deinstallation abgebrochen - %Application% wurde nicht gel÷scht."
  248. SET %Message2% = ""
  249. DialogBox("OKBOX")
  250. GOTO :END
  251.  
  252. :DODELETE
  253. CALL "%DeInstall%"
  254. Delete("%DeInstall%")
  255.  
  256.  
  257. SET %Len% = Len("%InstallPath%") - 1
  258. SET %InstTemp% = Left("%InstallPath%", %Len%)
  259. RmDir("%InstTemp%")
  260. Delete("%WindowsDirectory%%IniFile%")
  261.  
  262. DeleteGroup("%Application%")
  263. SET %Message1% = "%Application% wurde erfolgreich deinstalliert."
  264. SET %Message2% = "Um %Application% erneut zu installieren, mⁿssen Sie dieses Installationsprogramm nochmals starten."
  265. DialogBox("OKBOX")
  266. GOTO :END
  267.  
  268. :NOTINSTALLED
  269. SET %Message1% = "%Application% wurde nicht ordnungsgemΣ▀ installiert."
  270. SET %Message2% = "Die Deinstallations-Routine kann %Application% nicht deinstallieren."
  271. DialogBox("OKBOX")
  272. GOTO :END
  273.  
  274.  
  275. :END
  276. // Final tidy up - close files and remove components from H/D
  277. Close()
  278. CheckExists("%CurrentDirectory%CLEANUP.EXE", "Please insert the diskette labelled 'DISK01'")
  279. IF %ERROR% == IDOK WinExec("%CurrentDirectory%CLEANUP.EXE")
  280.