اسکریپت جستجو و تعیین محل نصب آفیس

مبین سافت آبان ۵, ۱۳۹۰ 0 دیدگاه

یکی از روش‌های تعیین محل نصب آفیس استفاده از رجیستری است. کد زیر که به زبان پاسکال نوشته شده، با دو بار آدرس گیری از رجیستری، محل نصب آفیس را مشخص می‌نماید.

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;

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *