[Setup] AppName=HomerKit AppVerName=HomerKit 2.3 AppPublisher=Jamal Mazrui AppPublisherURL=http://grabbag.alacorncomputer.com DisableStartupPrompt=Yes Uninstallable=No CreateAppDir=no OutputDir=c:\homerkit OutputBaseFilename=kitsetup DisableDirPage=yes DisableProgramGroupPage=yes DisableReadyPage=yes DisableFinishedPage=yes Compression=lzma SolidCompression=yes [Run] ; No longer install lbc.dll ;FileName:"{code:NETDir}\regasm.exe"; Parameters: "/nologo /silent ""{code:JFWDir}\lbc.dll"" /tlb"; Description: "Install Layout by Code COM library"; Flags: runhidden; Check: FileExists(ExpandConstant('{code:NETDir}\regasm.exe')); ;FileName: "IExplore.exe"; Parameters: """{code:ScriptDir}\HomerLib.htm"""; Description: "Read Documentation for Homer Script Library"; Flags: shellexec FileName: "IExplore.exe"; Parameters: """{code:ScriptDir}\Editor.htm"""; Description: "Read Documentation for Homer Editor Interface"; Flags: shellexec; Check: DirExists(ExpandConstant('{code:ScriptDir}')); ;FileName:"{code:ScriptDir}\HomerLib.txt"; Description: "Read Documentation for Homer Script Library"; Flags: shellexec skipifdoesntexist postinstall skipifsilent ;FileName:"{code:ScriptDir}\Editor.htm"; Description: "Read Documentation for Homer Editor Interface"; Flags: shellexec [Files] Source: "c:\jsx\jsx.exe"; Flags: DontCopy; Source: "c:\homerkit\kitsetup.zip"; Flags: DontCopy; ; no longer register PerlEval ;Source: "c:\HomerKit\zip\Homer\PerlEval.dll"; DestDir: "{code:ScriptDir}\Homer"; Flags: RegServer; Check: DirExists(ExpandConstant('{code:ScriptDir}')); ; No longer install Lbc.dll ;Source: "c:\HomerKit\zip\Homer\lbc.dll"; DestDir: "{code:ScriptDir}\Homer"; Flags: ; Check: DirExists(ExpandConstant('{code:ScriptDir}')); ;Source: "c:\HomerKit\zip\Homer\lbc.dll"; DestDir: "{code:JFWDir}"; Flags: ;Check: DirExists(ExpandConstant('{code:JFWDir}')); [Icons] Name: "{userdesktop}\Internet Explorer with Homer"; Filename: "{pf}\Internet Explorer\IExplore.exe"; Hotkey: Alt+Ctrl+I; Parameters: ""; WorkingDir: ""; [Code] Var i: Integer; s: String; s_JFWDir: String; s_ScriptDir: String; s_NETDir: String; s_tmpDir: String; i_result: Boolean; s_NoteTabDir: String; s_NoteTabExe: String; s_NoteTabProDir: String; s_NoteTabProTrialDir: String; s_NoteTabLightDir: String; s_NoteTabStdDir: String; const MB_ICONINFORMATION = $40; function FrameWorkName(Param: String): String; var Names: TArrayOfString; I: Integer; FrameworkInstall: Cardinal; begin Result := ''; if RegGetSubkeyNames(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP', Names) then begin for I := 0 to GetArrayLength(Names) - 1 do begin RegQueryDwordValue(HKLM, 'SOFTWARE\Microsoft\NET Framework Setup\NDP\'+Names[I], 'Install', FrameworkInstall); if FrameworkInstall = 1 then begin Result := Names[I]; end; end; end; end; function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer; external 'MessageBoxA@user32.dll stdcall'; Procedure Message(s_message: String); Begin MessageBox(0, s_message, 'Message', MB_OK or MB_ICONINFORMATION); End; procedure CurStepChanged(CurStep: TSetupStep); Begin If CurStep= ssInstall Then Begin s_TmpDir := ExpandConstant('{tmp}'); ExtractTemporaryFile('jsx.exe'); s := 'kitsetup.zip'; ExtractTemporaryFile(s); s := s_tmpDir +'\' + s; s := GetShortName(s); Exec((s_TmpDir + '\jsx.exe'), s + ' ' + ExPandConstant('{srcexe}'), s_TmpDir, SW_SHOW, ewWaitUntilTerminated, i); s_JFWDir := GetIniString('Settings', 'JFWDir', '', (s_TmpDir + '\jsx.ini')); //Message(s_JFWDir); s_ScriptDir := GetIniString('Settings', 'ScriptDir', '', (s_TmpDir + '\jsx.ini')); s_NETDir := FrameWorkName(''); //Message(s_scriptdir); //Result := False; //Result := True; End; End; Function JFWDir(s: String): String; Begin Result := s_JFWDir; End; Function ScriptDir(s: String): String; Begin Result := s_ScriptDir; End; Function NETDir(s: String): String; Begin If s_NETDir <> '' Then Begin s_NETDir := ExpandConstant('{win}') + '\Microsoft.NET\Framework\' + s_NETDir; End; //Message(s_NETDir); Result := s_NETDir; End; [Files] Source: "C:\Program Files\NoteTab Pro 5\Libraries\Homer.clb"; DestDir: "{code:NoteTabDir}\Libraries"; Check: DirExists(ExpandConstant('{code:NoteTabDir}')); [Code] Function InitializeSetup():Boolean; Begin s_NoteTabProDir := 'C:\Program Files\NoteTab Pro'; s_NoteTabProTrialDir := 'C:\Program Files\NoteTab Pro Trial'; s_NoteTabLightDir := 'C:\Program Files\NoteTab Light'; s_NoteTabStdDir := 'C:\Program Files\NoteTab Standard'; //i_result := RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\NotePro.exe', 'Target', s_NoteTabExe); i_result := False; If i_result = False Then s_NoteTabExe := 'C:\Program Files\NoteTab Pro 5\NotePro.exe'; If Not FileExists(s_NoteTabExe) Then s_NoteTabExe := 'C:\Program Files\NoteTab Pro\NotePro.exe'; If i_result = False Then s_NoteTabExe := 'C:\Program Files\NoteTab Pro\NotePro.exe'; If i_result = False Then i_result := FileExists(s_NoteTabExe); If i_result = False Then s_NoteTabExe := 'C:\Program Files\NoteTab Pro Trial\NotePro.exe'; If i_result = False Then i_result := FileExists(s_NoteTabExe); If i_result = False Then i_result := RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\NoteTab.exe', '', s_NoteTabExe); If i_result Then s_NoteTabDir := ExtractFileDir(s_NoteTabExe); //MsgBox(s_NoteTabDir, mbInformation, MB_OK); Result := True; //Result := False; End; Function NoteTabDir(s: String): String; Begin s_NoteTabDir := 'C:\Program Files\NoteTab Pro 5'; If Not DirExists(s_NoteTabDir) Then s_NoteTabDir := 'C:\Program Files\NoteTab Pro'; Result := s_NoteTabDir; End; Function NoteTabExe(s: String): String; Begin Result := s_NoteTabExe; End; Procedure MyCopy(s_subDir: String); Var s_file: String; s_fullName: String; Begin s_fullName := ExpandConstant(CurrentFileName()); s_file := ExtractFileName(s_fullName); //message(s_fullname); //message((s_NoteTabLightDir + s_subDir + '\' + s_file)); If DirExists(s_NoteTabProDir) Then FileCopy(s_fullName, (s_NoteTabProDir + s_subDir + '\' + s_file), False); If DirExists(s_NoteTabProDir + ' 5') Then FileCopy(s_fullName, (s_NoteTabProDir + ' 5' + s_subDir + '\' + s_file), False); If DirExists(s_NoteTabProTrialDir) Then FileCopy(s_fullName, (s_NoteTabProTrialDir + s_subDir + '\' + s_file), False); If DirExists(s_NoteTabLightDir) Then FileCopy(s_fullName, (s_NoteTabLightDir + s_subDir + '\' + s_file), False); If DirExists(s_NoteTabStdDir) Then FileCopy(s_fullName, (s_NoteTabStdDir + s_subDir + '\' + s_file), False); End;