اسکریپت جستجو و تعیین محل نصب آفیس
یکی از روشهای تعیین محل نصب آفیس استفاده از رجیستری است. کد زیر که به زبان پاسکال نوشته شده، با دو بار آدرس گیری از رجیستری، محل نصب آفیس را مشخص مینماید.
function GetOfficePath(Param: String): String; var sVar: String; sWordVar: String; begin RegQueryStringValue(HKEY_CLASSES_ROOT, ‘Word.Application\CurVer’, ”, sVar); Delete(sVar, 1, 17); sVar:= sVar + ‘.۰′; RegQueryStringValue(HKEY_LOCAL_MACHINE, ‘SOFTWARE\Microsoft\Office\’ + sVar + ‘\Word\InstallRoot’, ‘Path’, sWordVar); Result := sWordVar; end;
اسکریپت نصب Inno Setup هم برای یک پرونده نمونه آورده شده است:
; Script generated by the Inno Setup Script Wizard. ; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES! #define MyAppName “USP10″ #define MyAppVersion “۱.۰″ #define MyAppPublisher “MobinSoft, Inc.” #define MyAppURL “https://www.mobinsoft.net/” #define MyAppExeName “USP10Install.exe” [Setup] ; NOTE: The value of AppId uniquely identifies this application. ; Do not use the same AppId value in installers for other applications. ; (To generate a new GUID, click Tools | Generate GUID inside the IDE.) AppId={{8CA8A0DD-567B-4A9C-8C83-A50D976A0708} AppName={#MyAppName} AppVersion={#MyAppVersion} ;AppVerName={#MyAppName} {#MyAppVersion} AppPublisher={#MyAppPublisher} AppPublisherURL={#MyAppURL} AppSupportURL={#MyAppURL} AppUpdatesURL={#MyAppURL} CreateAppDir=no OutputBaseFilename=setup Compression=lzma SolidCompression=yes [Files] Source: “USP10.dll”; DestDir: {sys}; Flags: regserver restartreplace uninsneveruninstall noregerror; Source: “USP10.dll”; DestDir: {code:GetOfficePath}; Flags: regserver restartreplace uninsneveruninstall noregerror; [Code] function GetOfficePath(Param: String): String; var sVar: String; sWordVar: String; begin RegQueryStringValue(HKEY_CLASSES_ROOT, ‘Word.Application\CurVer’, ”, sVar); Delete(sVar, 1, 17); sVar:= sVar + ‘.۰′; RegQueryStringValue(HKEY_LOCAL_MACHINE, ‘SOFTWARE\Microsoft\Office\’ + sVar + ‘\Word\InstallRoot’, ‘Path’, sWordVar); Result := sWordVar; end;