; Script generated by the My Inno Setup Extensions Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! ; Script for P4OFC ; Created by Robert Cowham [Setup] AppName=P4OFC AppVerName=P4OFC 2014.1 AppPublisher=Vaccaperna Systems Ltd AppPublisherURL=http://www.vaccaperna.co.uk AppSupportURL=http://www.vaccaperna.co.uk AppUpdatesURL=http://www.vaccaperna.co.uk DefaultDirName={code:InstallDir|{pf}\Perforce\P4OFC} DirExistsWarning=no DefaultGroupName=Perforce ; Where are all inputs kept? Relative to current dir SourceDir=files ; Relative to SourceDir OutputDir=..\Output OutputBaseFilename=P4OFC PrivilegesRequired=poweruser [Registry] ; The various entries to ensure that the Com Addin is loaded in the various applications ; ***** Remember American spelling of LoadBehavior (no "u")!!! Root: HKLM; Subkey: "Software\Microsoft\Office\Word\Addins\P4ComAddin.Connect"; ValueType: dword; ValueName: "CommandLineSafe"; ValueData: "0"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\Word\Addins\P4ComAddin.Connect"; ValueType: dword; ValueName: "LoadBehavior"; ValueData: "3"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\Word\Addins\P4ComAddin.Connect"; ValueType: string; ValueName: "Description"; ValueData: "P4 Com Addin"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\Word\Addins\P4ComAddin.Connect"; ValueType: string; ValueName: "FriendlyName"; ValueData: "P4ForOffice Integration of Perforce into MS Office"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\Excel\Addins\P4ComAddin.Connect"; ValueType: dword; ValueName: "CommandLineSafe"; ValueData: "0"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\Excel\Addins\P4ComAddin.Connect"; ValueType: dword; ValueName: "LoadBehavior"; ValueData: "3"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\Excel\Addins\P4ComAddin.Connect"; ValueType: string; ValueName: "Description"; ValueData: "P4 Com Addin"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\Excel\Addins\P4ComAddin.Connect"; ValueType: string; ValueName: "FriendlyName"; ValueData: "P4ForOffice Integration of Perforce into MS Office"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\PowerPoint\Addins\P4ComAddin.Connect"; ValueType: dword; ValueName: "CommandLineSafe"; ValueData: "0"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\PowerPoint\Addins\P4ComAddin.Connect"; ValueType: dword; ValueName: "LoadBehavior"; ValueData: "3"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\PowerPoint\Addins\P4ComAddin.Connect"; ValueType: string; ValueName: "Description"; ValueData: "P4 Com Addin"; Check: Office2000orGreater; Flags: uninsdeletevalue Root: HKLM; Subkey: "Software\Microsoft\Office\PowerPoint\Addins\P4ComAddin.Connect"; ValueType: string; ValueName: "FriendlyName"; ValueData: "P4ForOffice Integration of Perforce into MS Office"; Check: Office2000orGreater; Flags: uninsdeletevalue ; Our help file and DLL file Root: HKLM; Subkey: "Software\Perforce\P4OFC"; ValueType: string; ValueName: "HelpFilePath"; ValueData: "{app}\p4ofc.chm"; Flags: uninsdeletevalue ; Note must be the same as location down below in [Files] section Root: HKLM; Subkey: "Software\Perforce\P4OFC"; ValueType: string; ValueName: "P4ComAddin"; ValueData: "{app}\p4comaddin.dll"; Flags: uninsdeletevalue ; Email address for support - if not set will default to "support@perforce.com" Root: HKCU; Subkey: "Software\Perforce\P4OFC"; ValueType: string; ValueName: "SupportEmailAddress"; ValueData: "support@vaccaperna.co.uk"; Flags: uninsdeletevalue [Files] ; VB Add-in Designer file Source: "msaddndr.dll"; DestDir: "{cf}\Designer"; Flags: uninsneveruninstall regserver sharedfile ; VB system files Source: "asycfilt.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile Source: "comcat.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver Source: "msvbvm60.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver Source: "oleaut32.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver Source: "olepro32.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver ; Tab control for VB Source: "tabctl32.ocx"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver ; Scripting runtime Source: "scrrun.dll"; DestDir: "{sys}"; Flags: restartreplace uninsneveruninstall sharedfile regserver ; Help files - common to everything Source: "p4ofc.chm"; DestDir: "{app}"; Flags: ignoreversion ; COM DLLs for P4OFC application plus dependencies Source: "libeay32.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "ssleay32.dll"; DestDir: "{app}"; Flags: ignoreversion Source: "p4dialogs.dll"; DestDir: "{app}"; Flags: regserver ignoreversion Source: "p4com.dll"; DestDir: "{app}"; Flags: regserver ignoreversion Source: "p4comaddin.dll"; DestDir: "{app}"; Flags: regserver ignoreversion ; Type libraries required for thread handling from VBoost Source: "VBoostTypes6.olb"; DestDir: "{app}"; Flags: ignoreversion Source: "ThreadAPI.olb"; DestDir: "{app}"; Flags: ignoreversion [Code] // This section is the Pascal script - various procedures called from above. program Setup; var bWord2000Installed: Boolean; bExcel2000Installed: Boolean; bPowerPoint2000Installed: Boolean; bOfficeXPInstalled: Boolean; bOffice2003Installed: Boolean; bOffice2007Installed: Boolean; bOffice2010Installed: Boolean; bOffice2013Installed: Boolean; //--------------------------------------------------- // Called automatically at the start of initialization function InitializeSetup(): Boolean; var Path: String; begin // Make sure an appropriate version of Office is installed! Result := True; if RegQueryStringValue(HKEY_CURRENT_USER, 'Software\Microsoft\Office\9.0\Word\Options', 'PROGRAMDIR', Path) then bWord2000Installed := True; if RegQueryStringValue(HKEY_CURRENT_USER, 'Software\Microsoft\Office\9.0\Excel\Options', 'PROGRAMDIR', Path) then bExcel2000Installed := True; if RegQueryStringValue(HKEY_CURRENT_USER, 'Software\Microsoft\Office\9.0\PowerPoint\Options', 'PROGRAMDIR', Path) then bPowerPoint2000Installed := True; // Alternative place to look for Office 2000 if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Office\9.0\Common\InstallRoot', 'Path', Path) then begin bWord2000Installed := True; bPowerPoint2000Installed := True; bExcel2000Installed := True; end; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Office\10.0\Common\InstallRoot', 'Path', Path) then bOfficeXPInstalled := True; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Office\11.0\Common\InstallRoot', 'Path', Path) then bOffice2003Installed := True; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Office\12.0\Common\InstallRoot', 'Path', Path) then bOffice2007Installed := True; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Office\14.0\Common\InstallRoot', 'Path', Path) then bOffice2010Installed := True; if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\App Paths\excel.exe', 'Path', Path) or RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\App Paths\winword.exe', 'Path', Path) or RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Microsoft\Windows\CurrentVersion\App Paths\powerpnt.exe', 'Path', Path) then bOffice2013Installed := True; if not bWord2000Installed and not bExcel2000Installed and not bPowerPoint2000Installed and not bOfficeXPInstalled and not bOffice2003Installed and not bOffice2007Installed and not bOffice2010Installed and not bOffice2013Installed then begin Result := False; MsgBox('No component of Office 2000, XP, 2003, 2007, 2010 or 2013 is installed - installation of P4OFC cannot proceed!', mbError, MB_OK); end; end; //---------------------------- function InstallDir(Default: String): String; var Path: String; begin // Value set up if Perforce is already installed if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'Software\Perforce\Environment', 'P4INSTROOT', Path) then begin Path := Path + '\P4OFC'; end else begin Path := Default; end; Result := Path; end; //---------------------------- // Following functions are for use with Check flags function Office2000orGreater(): Boolean; begin Result := False; if bWord2000Installed or bExcel2000Installed or bPowerPoint2000Installed or bOfficeXPInstalled or bOffice2003Installed or bOffice2007Installed or bOffice2010Installed or bOffice2013Installed then Result := True; end; begin end.