home *** CD-ROM | disk | FTP | other *** search
/ Chip 1996 October / CHIP_CD_1996_10_PL.iso / software / ktest / syntalk / setup.ms_ / setup.bin
Encoding:
Text File  |  1994-06-30  |  25.8 KB  |  898 lines

  1. '$INCLUDE 'setupapi.inc'
  2. '$INCLUDE 'msdetect.inc'
  3. CONST WINMAJVER             = 3        
  4. CONST WINMINVER             = 10        
  5. CONST WELCOME               = 100
  6. CONST DANE_PERSONALNE       = 101
  7. CONST DANE_PERSONALNE_SPR   = 102
  8. CONST KOLEJNA_INSTALACJA    = 103
  9. CONST PARAMETRY_INSTALACJI  = 104
  10. CONST MODAUTOEXEC           = 105
  11. CONST USZKODZONY_DYSK       = 106
  12. CONST ZLA_SCIEZKA           = 107
  13. CONST PUSTE_NAZWISKO        = 108
  14. CONST BLAD_ZAPISU_INSTAL    = 109
  15. CONST POTWIERDZENIE_WYJSCIA = 200
  16. CONST INFOWYJSCIE           = 201
  17. CONST ZLYNUMER              = 202
  18. CONST POBIERZ_SCIEZKE       = 203
  19. CONST BRAKKATALOGU          = 204
  20. CONST BRAK_AUTOEXECA        = 205
  21. CONST NIE_ZAINSTALOWANY     = 206
  22. CONST JEST_SCIEZKA          = 207
  23. CONST ZLA_WERSJA_WINDOWS    = 208
  24. CONST BRAKMIEJSCADLAINITA   = 209
  25. CONST BLADINSTALACJI        = 210
  26. CONST INFODIALOG            = 211
  27. CONST BLAD_ZAPISU_DOCEL     = 212
  28. CONST BRAK_KARTY            = 213
  29. CONST POBIERZ_SCIEZKE_WORD  = 214
  30. CONST POBIERZ_SCIEZKE_EXCEL = 215
  31. CONST BLAD_WORD_INSTALL     = 216
  32. CONST BLAD_EXCEL_INSTALL    = 217
  33. CONST ZLA_SCIEZKA_WORD      = 218
  34. CONST ZLA_SCIEZKA_EXCEL     = 219
  35. CONST BRAKMIEJSCA           = 119
  36. CONST KONIEC_OK             = 123
  37. CONST MAXPATHLEN            = 30      
  38. CONST LOGO                  =  1       
  39. CONST ST       = 1
  40. CONST HLP      = 2
  41. CONST SDK      = 3
  42. CONST MACWORD  = 4
  43. CONST MACEXCEL = 5
  44. CONST MB_ICONQUESTION     = 32
  45. CONST MB_ICONEXCLAMATION  = 48
  46. CONST MB_ICONASTERISK     = 64
  47. GLOBAL nazwa_glownego_pliku$
  48. GLOBAL docel_nazwa$
  49. GLOBAL numer_seryjny$
  50. GLOBAL numer_uzytk$
  51. GLOBAL nazwisko_uzytk$
  52. GLOBAL organizacja_uzytk$
  53. GLOBAL sciezka_inst$
  54. GLOBAL ModAutoStr$
  55. GLOBAL inst_st$
  56. GLOBAL inst_hlp$
  57. GLOBAL inst_sdk$
  58. GLOBAL inst_macword$
  59. GLOBAL inst_macexcel$
  60. GLOBAL drive_status$
  61. GLOBAL ZapotrzebowanieST$
  62. GLOBAL ZapotrzebowanieHLP$
  63. GLOBAL ZapotrzebowanieMACRW$
  64. GLOBAL ZapotrzebowanieMACRE$
  65. GLOBAL ZapotrzebowanieSDK$
  66. GLOBAL ZapotrzebowanieExtra$
  67. GLOBAL cuidll$          
  68. GLOBAL sciezka$         
  69. GLOBAL sciezkazap$      
  70. GLOBAL zrodlo$          
  71. GLOBAL np$              
  72. GLOBAL nu$              
  73. GLOBAL nazwiskouz$      
  74. GLOBAL ModAuto%         
  75. GLOBAL ModAutoZap%      
  76. GLOBAL PelenDysk%       
  77. GLOBAL IgnorujPelen%    
  78. GLOBAL cursor%          
  79. DECLARE FUNCTION PobierzDanePersonalne LIB "mscuistf.dll" AS INTEGER
  80. DECLARE FUNCTION ZapiszDanePersonalne  LIB "mscuistf.dll" AS INTEGER
  81. DECLARE FUNCTION WpiszDocelNumer       LIB "mscuistf.dll" AS INTEGER
  82. DECLARE FUNCTION CheckSoundCard        LIB "mscuistf.dll" AS INTEGER
  83. DECLARE SUB Initialize LIB "mscuistf.dll" (hInstance%, hMainWnd%)
  84. DECLARE SUB Terminate LIB "mscuistf.dll"
  85. DECLARE FUNCTION GetWindowsDrive AS STRING
  86. DECLARE FUNCTION TworzSciezke (Glowny$, Podkat$) AS STRING
  87. DECLARE SUB ObliczPotrzebyOpcji (KtorePliki%)
  88. DECLARE SUB ObliczPotrzebyWszystkie
  89. DECLARE SUB DodajDoListy (KtorePliki%)
  90. DECLARE SUB ObliczZajetoscDysku
  91. DECLARE SUB AddPathToAutoexec (AutoPath$, Path$)
  92. DECLARE FUNCTION IsPathInAutoexec (AutoPath$, Path$) AS INTEGER
  93. DECLARE SUB ClearWhiteChars (s$)
  94. DECLARE SUB ClearWhiteCharsAndEqualSign(s$)
  95. DECLARE SUB GetNextWordUC(s$,w$)
  96. DECLARE SUB GetNextPathUC(s$,w$)
  97. DECLARE FUNCTION SearchForPathCI (obj$, stg$) AS INTEGER
  98. DECLARE SUB ExplodeVersion(v$,v1%,v2%,v3%,v4%)
  99. DECLARE FUNCTION CompareVersion(ver1$,ver2$) AS INTEGER
  100. DECLARE SUB SearchForFile (ap$,fn$,dir$,ver$,found%)
  101. DECLARE FUNCTION WordInstallMacros( Channel& ) AS INTEGER
  102. DECLARE FUNCTION WordInstallMenus( Channel& ) AS INTEGER
  103. DECLARE SUB WordInstallErr( Msg$ )
  104. DECLARE SUB ExcelInstallErr( Msg$ )
  105. DECLARE FUNCTION DDEInit LIB "mscuistf.dll" (ServerName$, ServerTopic$) AS LONG
  106. DECLARE FUNCTION Dx LIB "mscuistf.dll" (Channel&, ExecCommand$) AS INTEGER
  107. DECLARE SUB DDETerminate LIB "mscuistf.dll" (hChannel&)
  108. DECLARE FUNCTION ShellExecute LIB "shell.dll" (hWnd%, lpszOp$, lpszFile$, lpszParams$, lpszDir$, fsShowCmd%) AS LONG
  109. DECLARE FUNCTION GetModuleHandle LIB "kernel" (plszName$) AS INTEGER
  110. BEGIN:
  111. cuidll$     = "mscuistf.dll"                 
  112. zrodlo$     = GetSymbolValue("STF_SRCDIR")   
  113. sciezka$    = GetWindowsDrive+":\SYNTALK"    
  114. WinPath$    = GetWindowsDir                  
  115. SetBitmap cuidll$,LOGO
  116. free&   = GetFreeSpaceForDrive(GetWindowsDrive)
  117. needed& = 8192
  118. IF needed&>free& THEN
  119. SetSymbolValue "BEEP", STR$(MB_ICONHAND)
  120. sz$=UIStartDlg(cuidll$, BRAKMIEJSCADLAINITA,"FButtonsDlgProc",0,"")
  121. GOTO WYJSCIE
  122. END IF
  123. ON ERROR GOTO BLAD
  124. IF (DoesFileExist(TworzSciezke(GetWindowsSysDir(),"pldialog.fon"),femExists)) THEN
  125. ELSE
  126. CopyFile zrodlo$+"pldialog.fo_", TworzSciezke(GetWindowsSysDir(),"pldialog.fon"), cmoDecompress+cmoOverwrite, 0
  127. ENDIF
  128. SetSymbolValue "PLDialogFontPath", TworzSciezke(GetWindowsSysDir(),"PLDIALOG.FON")
  129. Initialize hInstFrame(), HwndFrame()
  130. ma%=GetWindowsMajorVersion
  131. mi%=GetWindowsMinorVersion
  132. IF GetWindowsMajorVersion<WINMAJVER THEN
  133. GOTO ZLAWERSJA
  134. ELSEIF GetWindowsMajorVersion=WINMAJVER THEN
  135. IF GetWindowsMinorVersion<WINMINVER THEN
  136. GOTO ZLAWERSJA
  137. END IF
  138. END IF
  139. cursor%=ShowWaitCursor
  140. SetSymbolValue "Info", "Chwileczke, analizujΩ konfiguracje systemu ..."
  141. sz$=UIStartDlg(cuidll$,INFODIALOG,"FInfoDlgProc",0,"")
  142. numer_seryjny$        = "PSN"
  143. numer_uzytk$          = "USN"
  144. nazwisko_uzytk$       = "UName"
  145. organizacja_uzytk$    = "UOrg"
  146. nazwa_glownego_pliku$ = "GlownyPlik"
  147. docel_nazwa$          = "DocelowaNazwa"
  148. sciezka_inst$         = "InstallPath"
  149. ModAutoStr$           = "AutoexecModify"
  150. inst_st$              = "InstallST"
  151. inst_hlp$             = "InstallHLP"
  152. inst_sdk$             = "InstallSDK"
  153. inst_macword$         = "InstMacWord"
  154. inst_macexcel$        = "InstMacExcel"
  155. drive_status$         = "DriveStatus"
  156. SetSymbolValue numer_seryjny$,     ""
  157. SetSymbolValue numer_uzytk$,       ""
  158. SetSymbolValue nazwisko_uzytk$,    ""
  159. SetSymbolValue organizacja_uzytk$, ""
  160. IF DoesFileExist (TworzSciezke(WinPath$,"SYNTALK.INI"),femExists) THEN
  161. IF (GetIniKeyString("SYNTALK.INI", "Global", "WorkDir") <> "") THEN
  162. sciezka$ = GetIniKeyString("SYNTALK.INI", "Global", "WorkDir")
  163. SetSymbolValue sciezka_inst$,sciezka$
  164. IF DoesFileExist (TworzSciezke(sciezka$,"SYNTALK.EXE"),femExists) THEN
  165. AddListItem inst_st$,"OFF"
  166. ELSE
  167. AddListItem inst_st$,"ON"
  168. ENDIF
  169. AddListItem inst_st$,""
  170. IF DoesFileExist (TworzSciezke(sciezka$,"SYNTALK.HLP"),femExists) THEN
  171. AddListItem inst_hlp$,"OFF"
  172. ELSE
  173. AddListItem inst_hlp$,"ON"
  174. ENDIF
  175. AddListItem inst_hlp$,""
  176. IF DoesDirExist (TworzSciezke(sciezka$,"SDK")) THEN
  177. AddListItem inst_sdk$,"OFF"
  178. ELSE
  179. AddListItem inst_sdk$,"ON"
  180. ENDIF
  181. AddListItem inst_sdk$,""
  182. IF DoesFileExist (TworzSciezke(sciezka$,"SYNTALK.DOT"),femExists) THEN
  183. AddListItem inst_macword$,"OFF"
  184. ELSE
  185. AddListItem inst_macword$,"ON"
  186. ENDIF
  187. AddListItem inst_macword$,""
  188. IF DoesFileExist (TworzSciezke(sciezka$,"SYNTALK.XLA"),femExists) THEN
  189. AddListItem inst_macexcel$,"OFF"
  190. ELSE
  191. AddListItem inst_macexcel$,"ON"
  192. ENDIF
  193. AddListItem inst_macexcel$,""
  194. GOTO SWITCH_INITIALIZED
  195. ENDIF
  196. ENDIF
  197. SetSymbolValue sciezka_inst$,sciezka$
  198. AddListItem inst_st$,"ON"
  199. AddListItem inst_st$,""
  200. AddListItem inst_hlp$,"ON"
  201. AddListItem inst_hlp$,""
  202. AddListItem inst_sdk$,"ON"
  203. AddListItem inst_sdk$,""
  204. AddListItem inst_macword$,"ON"
  205. AddListItem inst_macword$,""
  206. AddListItem inst_macexcel$,"ON"
  207. AddListItem inst_macexcel$,""
  208. SWITCH_INITIALIZED:
  209. AddListItem drive_status$, MID$(sciezka,1,2)
  210. AddListItem drive_status$, ""
  211. AddListItem drive_status$, ""
  212. AddListItem drive_status$, ""
  213. AddListItem drive_status$, ""
  214. AddListItem drive_status$, ""
  215. ZapotrzebowanieST$         = "STNeeds"
  216. ZapotrzebowanieHLP$        = "HLPNeeds"
  217. ZapotrzebowanieMACRW$      = "MacWordNeeds"
  218. ZapotrzebowanieMACRE$      = "MacExcelNeeds"
  219. ZapotrzebowanieSDK$        = "SDKNeeds"
  220. ZapotrzebowanieExtra$      = "ExtraNeeds"
  221. FOR i%=1 TO 26 STEP 1
  222. AddListItem ZapotrzebowanieExtra$,"0"
  223. NEXT i%
  224. ModAuto%=1
  225. szInf$ = GetSymbolValue("STF_SRCINFPATH")
  226. IF szInf$ = "" THEN
  227. szInf$ = GetSymbolValue("STF_CWDDIR") + "SETUP.INF"
  228. END IF
  229. ReadInfFile szInf$
  230. gp$=zrodlo$+"SYNTALK.EXE"
  231. SetSymbolValue nazwa_glownego_pliku$, gp$
  232. RestoreCursor cursor%
  233. UIPop 1
  234. WELCOME:
  235. SetSymbolValue "BEEP", STR$(-1)
  236. sz$ = UIStartDlg(cuidll$, WELCOME, "FButtonsDlgProc", 0, "")
  237. IF sz$ = "KONTYNUACJA" THEN
  238. UIPop 1
  239. ELSE
  240. GOSUB PYTANIE_WYJSCIA
  241. UIPop 1
  242. GOTO WELCOME
  243. END IF
  244. IF (CheckSoundCard() = 0) THEN
  245. SetSymbolValue "BEEP", STR$(MB_ICONEXCLAMATION)
  246. sz$ = UIStartDlg(cuidll$, BRAK_KARTY, "FButtonsDlgProc", 0, "")
  247. IF sz$ = "KONTYNUACJA" THEN
  248. UIPop 1
  249. ELSE
  250. GOSUB PYTANIE_WYJSCIA
  251. UIPop 1
  252. END IF
  253. ENDIF
  254. DANEPERSONALNE:
  255. INSTALL:
  256. ObliczPotrzebyWszystkie
  257. ObliczZajetoscDysku
  258. INST1:
  259. sz$=UIStartDlg (cuidll$,PARAMETRY_INSTALACJI, "FInstallParamsDlgProc", 0, "")
  260. SELECT CASE sz$
  261. CASE "REACTIVATE"
  262. ObliczPotrzebyWszystkie
  263. ObliczZajetoscDysku
  264. GOTO INST1
  265. CASE "SYNTALK"
  266. ObliczPotrzebyOpcji ST
  267. ObliczZajetoscDysku
  268. GOTO INST1
  269. CASE "HELP"
  270. ObliczPotrzebyOpcji HLP
  271. ObliczZajetoscDysku
  272. GOTO INST1
  273. CASE "MACWORD"
  274. ObliczPotrzebyOpcji MACWORD
  275. ObliczZajetoscDysku
  276. GOTO INST1
  277. CASE "MACEXCEL"
  278. ObliczPotrzebyOpcji MACEXCEL
  279. ObliczZajetoscDysku
  280. GOTO INST1
  281. CASE "SDK"
  282. ObliczPotrzebyOpcji SDK
  283. ObliczZajetoscDysku
  284. GOTO INST1
  285. CASE "ZAKONCZENIE"
  286. GOSUB PYTANIE_WYJSCIA
  287. UIPop 1
  288. GOTO INST1
  289. CASE "KONTYNUACJA"
  290. IF PelenDysk% THEN
  291. GOSUB DYSKPELEN
  292. ObliczPotrzebyWszystkie
  293. ObliczZajetoscDysku
  294. IF IgnorujPelen% THEN
  295. GOTO SPRAWDZKATALOG
  296. END IF
  297. UIPopAll
  298. GOTO INST1
  299. END IF
  300. UIPop 1
  301. GOTO SPRAWDZKATALOG
  302. CASE "ZMIEN"
  303. UIPop 1
  304. GOSUB POBIERZSCIEZKE
  305. GOTO INST1
  306. CASE ELSE
  307. UIPop 1
  308. GOTO INST1
  309. END SELECT
  310. SPRAWDZKATALOG:
  311. IF DoesDirExist(sciezka$)=0 THEN
  312. SetSymbolValue "BEEP", STR$(MB_ICONQUESTION)
  313. sz$=UIStartDlg(cuidll$, BRAKKATALOGU, "FButtonsDlgProc", 0, "")
  314. IF sz$="TAK" THEN
  315. UIPop 1
  316. GOTO CZY_INSTALOWAC
  317. ELSE
  318. UIPop 1
  319. GOTO INSTALL
  320. END IF
  321. END IF
  322. CZY_INSTALOWAC:
  323. IF GetListItem(inst_ST$,1)="OFF" THEN
  324. IF GetListItem(inst_HLP$,1)="OFF" THEN
  325. IF GetListItem(inst_MACWORD$,1)="OFF" THEN
  326. IF GetListItem(inst_MACEXCEL$,1)="OFF" THEN
  327. IF GetListItem(inst_SDK$,1)="OFF" THEN
  328. GOTO WYJSCIE
  329. END IF
  330. END IF
  331. END IF
  332. END IF
  333. END IF
  334. KATAOLG_WORDA:
  335. KATAOLG_EXCELA:
  336. MODAUTOEXEC:
  337. INSTALACJA:
  338. ClearCopyList
  339. DodajDoListy ST
  340. DodajDoListy HLP
  341. CreateDir sciezka$, cmoNone
  342. CopyFilesInCopyList
  343. cursor%=ShowWaitCursor
  344. SetSymbolValue "Info", "Konfiguruje SynTalka w systemie..."
  345. sz$=UIStartDlg(cuidll$,INFODIALOG,"FInfoDlgProc",0,"")
  346. CreateIniKeyValue "WIN.INI", "fonts", "PL Dialog","pldialog.fon", cmoOverwrite
  347. IF ( GetListItem(inst_ST$,1)="ON") OR (GetListItem(inst_HLP$,1)="ON") THEN
  348. CreateProgmanGroup "SynTalk - wersja DEMO", "", cmoNone
  349. ShowProgmanGroup "SynTalk - wersja DEMO", 1, cmoNone
  350. ENDIF
  351. IF GetListItem(inst_ST$,1)="ON" THEN
  352. CreateProgmanItem "SynTalk - wersja DEMO", "SynTalk", TworzSciezke( sciezka$, "syntalk.exe"), "", cmoOverwrite
  353. CreateProgmanItem "SynTalk - wersja DEMO", "Przeczytaj to", TworzSciezke( sciezka$, "czytaj.txt"), "", cmoOverwrite
  354. CreateProgmanItem "SynTalk - wersja DEMO", "Konkurs!!!", TworzSciezke( sciezka$, "konkurs.txt"), "", cmoOverwrite
  355. END IF
  356. IF GetListItem(inst_HLP$,1)="ON" THEN
  357. CreateProgmanItem "SynTalk - wersja DEMO", "Pomoc dla SynTalka", TworzSciezke( sciezka$, "syntalk.hlp"), "", cmoOverwrite
  358. END IF
  359. IF GetListItem(inst_ST$,1)="ON" THEN
  360. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Global", "WorkDir",  sciezka$ , cmoOverwrite
  361. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Global", "InitLogo", "1"      , cmoOverwrite
  362. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Dictionary", "ExpDict", TworzSciezke(sciezka$, "USER.EXP"), cmoOverwrite
  363. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Dictionary", "UseExpDict", "Yes", cmoOverwrite
  364. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Conversions", "ConvertNumber", "Yes" , cmoOverwrite
  365. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Conversions", "ConvertDate",   "Yes" , cmoOverwrite
  366. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Conversions", "ConvertCaps",   "Yes" , cmoOverwrite
  367. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Conversions", "ConvertCapsLimit", "5" , cmoOverwrite
  368. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Sound", "Tunning", "0" , cmoOverwrite
  369. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Sound", "PauseInterSentence", "50" , cmoOverwrite
  370. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Sound", "PausePunctation", "30" , cmoOverwrite
  371. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Sound", "PauseInterWord", "7" , cmoOverwrite
  372. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "Sound", "PauseDoubleLetter", "3" , cmoOverwrite
  373. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "HotKeys", "ReadOrPause", "CS65" , cmoOverwrite
  374. CreateIniKeyValue TworzSciezke(WinPath$, "SYNTALK.INI"), "HotKeys", "Break", "CS83" , cmoOverwrite
  375. END IF
  376. WORDINSTALL:
  377. EXCELINSTALL:
  378. FINISH:
  379. RestoreCursor cursor%
  380. UIPop 1
  381. sz$=UIStartDlg(cuidll$,KONIEC_OK,"FFinishDlgProc",0,"")
  382. GOTO WYJSCIE
  383. DYSKPELEN:
  384. SetSymbolValue "BEEP", STR$(MB_ICONQUESTION)
  385. sz$=UIStartDlg(cuidll$,BRAKMIEJSCA,"FButtonsDlgProc",0,"")
  386. SELECT CASE sz$
  387. CASE "TAK"
  388. UIPop 1
  389. IgnorujPelen% = 1
  390. RETURN
  391. CASE "NIE"
  392. UIPop 1
  393. IgnorujPelen% = 0
  394. RETURN
  395. CASE ELSE
  396. GOTO DYSKPELEN
  397. END SELECT
  398. POBIERZSCIEZKE:
  399. SetSymbolValue sciezka_inst$, sciezka$
  400. sciezkazap$=GetSymbolValue(sciezka_inst$)
  401. P1:
  402. sz$=UIStartDlg(cuidll$,POBIERZ_SCIEZKE,"FPathDlgProc",0,"")
  403. SELECT CASE sz$
  404. CASE "KONTYNUACJA"
  405. sciezka$=GetSymbolValue(sciezka_inst$)
  406. IF IsDirWritable (sciezka$) THEN
  407. UIPopAll
  408. IF LEN (sciezka$)>MAXPATHLEN THEN
  409. SetSymbolValue sciezka_inst$, MID$(sciezka$,1,MAXPATHLEN)+"..."
  410. END IF
  411. ObliczPotrzebyWszystkie
  412. ObliczZajetoscDysku
  413. RETURN
  414. ELSE
  415. SetSymbolValue "BEEP", STR$(MB_ICONEXCLAMATION)
  416. sz$=UIStartDlg (cuidll$, ZLA_SCIEZKA, "FButtonsDlgProc",0,"")
  417. ENDIF
  418. UIPop 1
  419. GOTO P1
  420. CASE "ZAKONCZENIE", "CANCEL"
  421. sciezka$=sciezkazap$
  422. IF LEN (sciezka$)>MAXPATHLEN THEN
  423. SetSymbolValue sciezka_inst$, MID$(sciezka$,1,MAXPATHLEN)+"..."
  424. END IF
  425. UIPopAll
  426. RETURN
  427. CASE ELSE
  428. GOTO P1
  429. END SELECT
  430. GOTO WYJSCIE
  431. PYTANIE_WYJSCIA:
  432. SetSymbolValue "BEEP", STR$(MB_ICONQUESTION)
  433. sz$ = UIStartDlg(cuidll$, POTWIERDZENIE_WYJSCIA, "FButtonsDlgProc", 0, "")
  434. IF sz$ = "TAK" THEN
  435. UIPopAll
  436. GOTO BREAKINSTALL
  437. ELSEIF sz$="REACTIVATE" THEN
  438. GOTO PYTANIE_WYJSCIA
  439. ELSE
  440. UIPop 1
  441. END IF
  442. RETURN
  443. ZLAWERSJA:
  444. SetSymbolValue "BEEP", STR$(MB_ICONEXCLAMATION)
  445. sz$=UIStartDlg(cuidll$,ZLA_WERSJA_WINDOWS,"FButtonsDlgProc", 0, "")
  446. GOTO WYJSCIE
  447. ERR:
  448. BREAKINSTALL:
  449. UIPopAll
  450. SetSymbolValue "BEEP", STR$(MB_ICONHAND)
  451. sz$=UIStartDlg(cuidll$, INFOWYJSCIE, "FButtonsDlgProc", 0, "")
  452. WYJSCIE:
  453. QUIT:    
  454. UIPopAll
  455. Terminate
  456. END
  457. BLAD:
  458. UIPopAll
  459. SetSymbolValue "BEEP", STR$(MB_ICONHAND)
  460. sz$=UIStartDlg(cuidll$,BLADINSTALACJI,"FButtonsDlgProc",0,"")
  461. Terminate
  462. END
  463. SUB DodajDoListy (KtorePliki%) STATIC
  464. SELECT CASE KtorePliki%
  465. CASE ST
  466. IF GetListItem (inst_st$,1)="ON" THEN   
  467. AddSectionFilesToCopyList "SynTalk",zrodlo$,sciezka$
  468. END IF
  469. CASE HLP
  470. IF GetListItem (inst_hlp$,1)="ON" THEN  
  471. AddSectionFilesToCopyList "Help",zrodlo$,sciezka$
  472. END IF
  473. CASE SDK
  474. CASE MACWORD
  475. CASE MACEXCEL
  476. END SELECT
  477. END SUB
  478. SUB ObliczPotrzebyOpcji (KtorePliki%) STATIC
  479. KursorZap%=ShowWaitCursor()
  480. ClearCopyList
  481. DodajDoListy KtorePliki%
  482. Extra%=0
  483. SELECT CASE KtorePliki%
  484. CASE ST
  485. ZapotrzebowanieListy$ = ZapotrzebowanieST$
  486. IF GetListItem(inst_st$,1)="ON" THEN
  487. Nr%=ASC(UCASE$(GetWindowsDrive))-ASC("A")+1
  488. ReplaceListItem ZapotrzebowanieExtra$, Nr%, "7792"
  489. Extra%=1
  490. END IF
  491. CASE HLP
  492. ZapotrzebowanieListy$ = ZapotrzebowanieHLP$
  493. CASE MACWORD
  494. ZapotrzebowanieListy$ = ZapotrzebowanieMACRW$
  495. CASE MACEXCEL
  496. ZapotrzebowanieListy$ = ZapotrzebowanieMACRE$
  497. CASE SDK
  498. ZapotrzebowanieListy$ = ZapotrzebowanieSDK$
  499. END SELECT
  500. Braki&=GetCopyListCost(ZapotrzebowanieExtra$, ZapotrzebowanieListy$,"")
  501. Potrzeby&=0
  502. FOR i%=1 TO 26 STEP 1
  503. Potrzeby& = Potrzeby& + VAL(GetListItem(ZapotrzebowanieListy$,i%))
  504. NEXT i%
  505. SELECT CASE KtorePliki%
  506. CASE ST
  507. ReplaceListItem inst_st$,2,STR$(Potrzeby&/1024)+" kB"
  508. CASE HLP
  509. ReplaceListItem inst_hlp$,2,STR$(Potrzeby&/1024)+" kB"
  510. CASE MACWORD
  511. ReplaceListItem inst_macword$,2,STR$(Potrzeby&/1024)+" kB"
  512. CASE MACEXCEL
  513. ReplaceListItem inst_macexcel$,2,STR$(Potrzeby&/1024)+" kB"
  514. CASE SDK
  515. ReplaceListItem inst_sdk$,2,STR$(Potrzeby&/1024)+" kB"
  516. END SELECT
  517. IF Extra% THEN
  518. ReplaceListItem ZapotrzebowanieExtra$, Nr%, "0"
  519. END IF
  520. RestoreCursor KursorZap%
  521. ZapotrzebowanieListy=""
  522. END SUB
  523. SUB ObliczPotrzebyWszystkie STATIC
  524. KursorZap%=ShowWaitCursor
  525. ObliczPotrzebyOpcji ST
  526. ObliczPotrzebyOpcji HLP
  527. RestoreCursor KursorZap%
  528. END SUB
  529. SUB ObliczZajetoscDysku STATIC
  530. PelenDysk%=0
  531. Drajw$=MID$(Sciezka$,1,1)
  532. NumerDrajwu%=ASC(UCASE$(Drajw$)) - ASC("A") + 1
  533. c1& = VAL(GetListItem(ZapotrzebowanieST$,NumerDrajwu%))+VAL(GetListItem(ZapotrzebowanieHLP$,NumerDrajwu%))
  534. Calosc& = c1& 
  535. WolneMiejsce& = GetFreeSpaceForDrive(Drajw$)
  536. IF Calosc&>=WolneMiejsce& THEN
  537. PelenDysk%=1
  538. END IF
  539. ReplaceListItem drive_status$, 1, Drajw$ + ":"
  540. ReplaceListItem drive_status$, 2, STR$(WolneMiejsce&/1024) + " kB"
  541. ReplaceListItem drive_status$, 3, STR$(Calosc&/1024) + " kB"
  542. IF GetWindowsDrive=Drajw$ THEN
  543. ReplaceListItem drive_status$, 4, ""
  544. ReplaceListItem drive_status$, 5, ""
  545. ReplaceListItem drive_status$, 6, ""
  546. ELSE
  547. NumerDrajwu%=ASC(UCASE$(GetWindowsDrive)) - ASC("A") + 1
  548. c1& = VAL(GetListItem(ZapotrzebowanieST$,NumerDrajwu%))+VAL(GetListItem(ZapotrzebowanieHLP$,NumerDrajwu%))
  549. Calosc&=c1& 
  550. IF Calosc&=0 THEN
  551. ReplaceListItem drive_status$, 4, ""
  552. ReplaceListItem drive_status$, 5, ""
  553. ReplaceListItem drive_status$, 6, ""
  554. ELSE
  555. WolneMiejsce&=GetFreeSpaceForDrive(GetWindowsDrive)
  556. ReplaceListItem drive_status$, 4, GetWindowsDrive + ":"
  557. ReplaceListItem drive_status$, 5, STR$ (WolneMiejsce&/1024) + " kB"
  558. ReplaceListItem drive_status$, 6, STR$ (Calosc&/1024) + " kB"
  559. IF Calosc&>=WolneMiejsce& THEN
  560. PelenDysk%=1
  561. END IF
  562. END IF
  563. END IF
  564. END SUB
  565. FUNCTION GetWindowsDrive STATIC AS STRING
  566. p$=GetWindowsDir
  567. GetWindowsDrive=MID$(p$,1,1)
  568. END FUNCTION
  569. FUNCTION TworzSciezke (Glowny$, Podkat$)  STATIC AS STRING
  570. IF Glowny$="" THEN
  571. TworzSciezke=Podkat$
  572. ELSEIF Podkat$="" THEN
  573. TworzSciezke=Glowny$
  574. ELSEIF MID$(Glowny$, LEN(Glowny$),1)= "\" THEN
  575. TworzSciezke=Glowny$+Podkat$
  576. ELSE
  577. TworzSciezke=Glowny+"\"+Podkat
  578. END IF
  579. END FUNCTION
  580. SUB AddPathToAutoexec (AutoPath$, Path$) STATIC
  581. OPEN AutoPath$+"AUTOEXEC.BAT" FOR INPUT  AS #1
  582. OPEN AutoPath$+"AUTOEXEC.BAK" FOR OUTPUT AS #2
  583. WHILE NOT EOF(1)
  584. LINE INPUT#1,  s$
  585. PRINT#2, s$
  586. WEND
  587. CLOSE #1
  588. CLOSE #2
  589. OPEN AutoPath$+"AUTOEXEC.BAK" FOR INPUT AS #1
  590. OPEN AutoPath$+"AUTOEXEC.BAT" FOR OUTPUT AS #2
  591. PathExists%=0                
  592. WHILE NOT EOF(1)
  593. LINE INPUT#1,  s$
  594. IF PathExists%<>0 THEN   
  595. PRINT#2, s$
  596. ELSE
  597. s1$=s$                
  598. ClearWhiteChars s$    
  599. GetNextWordUC s$,w$   
  600. IF w$="PATH" THEN
  601. PathExists%=1
  602. END IF
  603. IF w$="SET" THEN
  604. ClearWhiteChars s$
  605. GetNextWordUC s$,w$
  606. IF w$="PATH" THEN
  607. PathExists%=1
  608. END IF
  609. END IF
  610. PRINT#2, s1$
  611. IF PathExists% THEN
  612. PRINT#2, "PATH=%PATH%;"+Path$
  613. END IF
  614. END IF
  615. WEND
  616. IF (PathExists%=0) THEN
  617. PRINT#2, "PATH="+Path$
  618. END IF
  619. CLOSE #1
  620. CLOSE #2
  621. END SUB
  622. SUB ClearWhiteChars(s$) STATIC
  623. IF s$<>"" THEN
  624. x%=1
  625. WHILE (MID$(s$,x%,1)=" " OR MID$(s$,x%,1)=CHR$(9) OR MID$(s$,x%,1)=CHR$(0))
  626. x%=x%+1
  627. WEND
  628. s$=MID$(s$,x%,LEN(s$)-x%+1)
  629. END IF
  630. END SUB
  631. SUB ClearWhiteCharsAndEqualSign(s$) STATIC
  632. IF s$<>"" THEN
  633. x%=1
  634. WHILE (MID$(s$,x%,1)=" " OR MID$(s$,x%,1)=CHR$(9) OR MID$(s$,x%,1)=CHR$(0) OR MID$(s$,x%,1)=CHR$(61))
  635. x%=x%+1
  636. WEND
  637. s$=MID$(s$,x%,LEN(s$)-x%+1)
  638. END IF
  639. END SUB
  640. SUB GetNextWordUC(s$,w$) STATIC
  641. IF s$<>"" THEN
  642. break%=0
  643. x%=1
  644. w$=""
  645. WHILE break%<>1
  646. SELECT CASE ASC(MID$(s$,x%,1))
  647. CASE 48 TO 57, 65 TO 90, 97 TO 122
  648. w$=w$+UCASE$(MID$(s$,x%,1))
  649. x%=x%+1
  650. IF x%>LEN(s$) THEN
  651. break%=1
  652. END IF
  653. CASE ELSE
  654. break%=1
  655. END SELECT
  656. WEND
  657. s$=MID$(s$,x%,LEN(s$)-x%+1)
  658. ELSE
  659. w$=""
  660. END IF
  661. END SUB
  662. SUB GetNextPathUC(s$,w$) STATIC
  663. IF s$<>"" THEN
  664. break%=0
  665. x%=1
  666. w$=""
  667. WHILE break%<>1
  668. SELECT CASE ASC(MID$(s$,x%,1))
  669. CASE 32,33,35 TO 41,45,46,48 TO 58, 64 TO 90, 92, 94 TO 255
  670. w$=w$+UCASE$(MID$(s$,x%,1))
  671. x%=x%+1
  672. IF x%>LEN(s$) THEN
  673. break%=1
  674. END IF
  675. CASE ELSE
  676. break%=1
  677. END SELECT
  678. WEND
  679. s$=MID$(s$,x%,LEN(s$)-x%+1)
  680. IF MID$(s$,1,1)=";" THEN
  681. s$=MID$(s$,2,LEN(s$)-1)
  682. END IF
  683. ELSE
  684. w$=""
  685. END IF
  686. END SUB
  687. FUNCTION IsPathInAutoexec (AutoPath$, Path$) STATIC AS INTEGER
  688. IF MID$(Path$,Len(Path$),1)="\" THEN
  689. Path$=MID$(Path$,1,LEN(Path$)-1)
  690. END IF
  691. i%=0
  692. OPEN AutoPath$+"AUTOEXEC.BAT" FOR INPUT  AS #1
  693. WHILE NOT EOF(1)
  694. LINE INPUT#1,  s$
  695. ClearWhiteChars s$
  696. GetNextWordUC s$,w$
  697. IF w$="PATH" THEN
  698. i%=SearchForPathCI(Path$,s$)
  699. END IF
  700. IF i%>0 THEN
  701. EXIT WHILE
  702. END IF
  703. IF w$="SET" THEN
  704. ClearWhiteChars s$
  705. GetNextWordUC s$,w$
  706. IF w$="PATH" THEN
  707. i%=SearchForPathCI(Path$,s$)
  708. END IF
  709. IF i%>0 THEN
  710. EXIT WHILE
  711. END IF
  712. END IF
  713. WEND
  714. CLOSE #1
  715. IsPathInAutoexec=i%
  716. END FUNCTION
  717. FUNCTION SearchForPathCI (obj$, stg$) STATIC AS INTEGER
  718. found% = 0
  719. ol% = LEN(obj$)
  720. sl% = LEN(stg$)
  721. n% = sl% - ol% + 1
  722. FOR i% = 1 TO n%
  723. IF UCASE$(MID$(stg$, i%, ol%)) = UCASE$(obj$) THEN
  724. found% = 1
  725. EXIT FOR
  726. END IF
  727. NEXT i%
  728. IF ((found%<>0) AND (i%<n%)) THEN
  729. IF MID$(stg$, i%+ol%, 1)<>";" THEN
  730. IF MID$(stg$, i%+ol%, 1)="\" THEN
  731. IF (i%+1<n%) THEN
  732. IF MID$(stg$, i%+ol%+1, 1)<>";" THEN
  733. found%=0
  734. END IF
  735. END IF
  736. ELSE
  737. found%=0
  738. END IF
  739. END IF
  740. END IF
  741. SearchForPathCI = found%
  742. END FUNCTION
  743. SUB ExplodeVersion(v$,v1%,v2%,v3%,v4%) STATIC
  744. GetNextWordUC v$,s$
  745. v1%=VAL(s$)
  746. v$=MID$(v$,2,LEN(v$)-1)
  747. GetNextWordUC v$,s$
  748. v2%=VAL(s$)
  749. v$=MID$(v$,2,LEN(v$)-1)
  750. GetNextWordUC v$,s$
  751. v3%=VAL(s$)
  752. v$=MID$(v$,2,LEN(v$)-1)
  753. GetNextWordUC v$,s$
  754. v4%=VAL(s$)
  755. END SUB
  756. FUNCTION CompareVersion(ver1$,ver2$) STATIC AS INTEGER
  757. ExplodeVersion ver1, v1%, v2%, v3%, v4%
  758. ExplodeVersion ver2, x1%, x2%, x3%, x4%
  759. StillComp%=1
  760. cw%=0
  761. IF v1%>x1% THEN
  762. cw%=1
  763. StillComp%=0
  764. ELSEIF v1%=x1% THEN
  765. StillComp%=1
  766. ELSEIF v1%<x1% THEN
  767. cw%=-1
  768. StillComp%=0
  769. END IF
  770. IF StillComp THEN
  771. IF v2%>x2% THEN
  772. cw%=1
  773. StillComp%=0
  774. ELSEIF v2%=x2% THEN
  775. StillComp%=1
  776. ELSEIF v2%<x2% THEN
  777. cw%=-1
  778. StillComp%=0
  779. END IF
  780. END IF
  781. IF StillComp THEN
  782. IF v3%>x3% THEN
  783. cw%=1
  784. StillComp%=0
  785. ELSEIF v3%=x3% THEN
  786. StillComp%=1
  787. ELSEIF v3%<x3% THEN
  788. cw%=-1
  789. StillComp%=0
  790. END IF
  791. END IF
  792. IF StillComp THEN
  793. IF v4%>x4% THEN
  794. cw%=1
  795. StillComp%=0
  796. ELSEIF v4%=x4% THEN
  797. StillComp%=1
  798. ELSEIF v4%<x4% THEN
  799. cw%=-1
  800. StillComp%=0
  801. END IF
  802. END IF
  803. CompareVersion=cw%
  804. END FUNCTION
  805. SUB SearchForFile (ap$,fn$,dir$,ver$,found%) STATIC
  806. IF (DoesFileExist (ap$+"AUTOEXEC.BAT",femExists)) THEN
  807. OPEN ap$+"AUTOEXEC.BAT" FOR INPUT  AS #1
  808. test%=0
  809. found%=0
  810. WHILE NOT EOF(1)
  811. LINE INPUT#1,  s$
  812. ClearWhiteChars s$
  813. GetNextWordUC s$,w$
  814. IF w$="PATH" THEN
  815. ClearWhiteCharsAndEqualSign s$
  816. test%=1                         
  817. ELSEIF w$="SET" THEN
  818. ClearWhiteChars s$
  819. GetNextWordUC s$,w$
  820. IF w$="PATH" THEN
  821. ClearWhiteCharsAndEqualSign s$
  822. test%=1                 
  823. END IF
  824. END IF
  825. IF test%=1 THEN
  826. WHILE s$<>""
  827. GetNextPathUC s$,w$
  828. IF DoesFileExist (TworzSciezke(w$,fn$),femExists) THEN
  829. dir$=w$
  830. ver$=GetVersionOfFile(TworzSciezke(w$,fn$))
  831. found%=1
  832. CLOSE #1
  833. EXIT SUB
  834. END IF
  835. WEND
  836. test%=0
  837. END IF
  838. WEND
  839. CLOSE #1
  840. ELSE
  841. dir$ = ""
  842. ver$ = ""
  843. found%=0
  844. ENDIF
  845. END SUB
  846. SUB WordInstallErr( Msg$ ) STATIC
  847. RestoreCursor cursor%
  848. UIPop 1
  849. SetSymbolValue "ERRMSG", Msg$
  850. sz$=UIStartDlg(cuidll$, BLAD_WORD_INSTALL,"FMacroInstallErrDlgProc",0,"")
  851. UIPop 1
  852. cursor%=ShowWaitCursor
  853. SetSymbolValue "Info", "Konfiguruje SynTalka w systemie..."
  854. sz$=UIStartDlg(cuidll$,INFODIALOG,"FInfoDlgProc",0,"")
  855. END SUB
  856. SUB ExcelInstallErr( Msg$ ) STATIC
  857. RestoreCursor cursor%
  858. UIPop 1
  859. SetSymbolValue "ERRMSG", Msg$
  860. sz$=UIStartDlg(cuidll$, BLAD_EXCEL_INSTALL,"FMacroInstallErrDlgProc",0,"")
  861. UIPop 1
  862. cursor%=ShowWaitCursor
  863. SetSymbolValue "Info", "Konfiguruje SynTalka w systemie..."
  864. sz$=UIStartDlg(cuidll$,INFODIALOG,"FInfoDlgProc",0,"")
  865. END SUB
  866. FUNCTION WordInstallMacros( D& ) STATIC AS INTEGER
  867. IF (Dx(D&,"[if AppMinimize() then AppRestore ]") = 0) THEN
  868. WordInstallMacros = 0
  869. ELSEIF (Dx(D&,"[FileOpen .Name="+CHR$(34)+TworzSciezke(sciezka$,"syntalk.dot")+CHR$(34)+", .ReadOnly=1 ]") = 0) THEN
  870. WordInstallMacros = 0 
  871. ELSEIF (Dx(D&,"[MacroCopy "+CHR$(34)+TworzSciezke(sciezka$,"syntalk.dot")+":Czytaj"+CHR$(34)+","+CHR$(34)+"Global:Czytaj"+CHR$(34)+" ]") = 0) THEN
  872. WordInstallMacros = 0 
  873. ELSEIF (Dx(D&,"[MacroCopy "+CHR$(34)+TworzSciezke(sciezka$,"syntalk.dot")+":Przerwij"+CHR$(34)+","+CHR$(34)+"Global:Przerwij"+CHR$(34)+" ]") = 0) THEN
  874. WordInstallMacros = 0
  875. ELSEIF (Dx(D&,"[MacroCopy "+CHR$(34)+TworzSciezke(sciezka$,"syntalk.dot")+":Kontynuuj"+CHR$(34)+","+CHR$(34)+"Global:Kontynuuj"+CHR$(34)+" ]") = 0) THEN
  876. WordInstallMacros = 0 
  877. ELSEIF (Dx(D&,"[MacroCopy "+CHR$(34)+TworzSciezke(sciezka$,"syntalk.dot")+":Zatrzymaj"+CHR$(34)+","+CHR$(34)+"Global:Zatrzymaj"+CHR$(34)+" ]") = 0) THEN
  878. WordInstallMacros = 0 
  879. ELSE
  880. WordInstallMacros = 1 
  881. ENDIF
  882. END FUNCTION
  883. FUNCTION WordInstallMenus( D& ) STATIC AS INTEGER
  884. IF (Dx(D&,"[ToolsCustomizeMenuBar .Context = 0, .Position = 7, .MenuType = 0, .MenuText = "+CHR$(34)+"&SynTalk"+CHR$(34)+", .Add ]") = 0) THEN
  885. WordInstallMenus = 0
  886. ELSEIF Dx(D&,"[ToolsCustomizeMenus.MenuType=0,.Position=-1,.Category=2,.Name="+CHR$(34)+"Czytaj"+CHR$(34)+",.Menu="+CHR$(34)+"&SynTalk"+CHR$(34)+",.AddBelow="+CHR$(34)+CHR$(34)+",.MenuText="+CHR$(34)+"&Czytaj"+CHR$(34)+",.Add,.Context=0]")=0 THEN
  887. WordInstallMenus = 0 
  888. ELSEIF Dx(D&,"[ToolsCustomizeMenus.MenuType=0,.Position=-1,.Category=2,.Name="+CHR$(34)+"Zatrzymaj"+CHR$(34)+",.Menu="+CHR$(34)+"&SynTalk"+CHR$(34)+",.AddBelow="+CHR$(34)+CHR$(34)+",.MenuText="+CHR$(34)+"&Zatrzymaj"+CHR$(34)+",.Add,.Context=0]")=0 THEN
  889. WordInstallMenus = 0
  890. ELSEIF Dx(D&,"[ToolsCustomizeMenus.MenuType=0,.Position=-1,.Category=2,.Name="+CHR$(34)+"Kontynuuj"+CHR$(34)+",.Menu="+CHR$(34)+"&SynTalk"+CHR$(34)+",.AddBelow="+CHR$(34)+CHR$(34)+",.MenuText="+CHR$(34)+"&Kontynuuj"+CHR$(34)+",.Add,.Context=0]")=0 THEN
  891. WordInstallMenus = 0 
  892. ELSEIF Dx(D&,"[ToolsCustomizeMenus.MenuType=0,.Position=-1,.Category=2,.Name="+CHR$(34)+"Przerwij"+CHR$(34)+",.Menu="+CHR$(34)+"&SynTalk"+CHR$(34)+",.AddBelow="+CHR$(34)+CHR$(34)+",.MenuText="+CHR$(34)+"&Przerwij"+CHR$(34)+",.Add,.Context=0]")=0 THEN
  893. WordInstallMenus = 0
  894. ELSE
  895. WordInstallMenus = 1 
  896. ENDIF
  897. END FUNCTION
  898.