Удалите установку дополнения перед удалением основной настройки с помощью установки Inno - PullRequest
1 голос
/ 18 января 2012

Мое требование ниже; Я прочитал идентификатор продукта надстройки из реестра и удалил установку, используя этот идентификатор продукта, перед удалением основной установки. Я использовал следующий код

[code]
const
  RegProductLocation = 'SOFTWARE\My Company\My Product\Sample\ {#Version}';
var SamplesProductId : string;
function GetSamplesID(): Boolean;
begin
  if RegQueryStringValue(HKEY_CURRENT_USER, RegProductLocation, 'ProductID', SamplesProductId) then
begin
    Result:= true;
end else begin
Result:= false;   
  end;end;

[UninstallRun] 
Filename: msiexec.exe; Parameters: " /x ""{SamplesProductId}"" /qn"; Check:GetSamplesID();  Flags: runhidden;

Он не компилируется установкой Inno и показывает ошибку. Не могли бы вы помочь мне решить эту проблему?

1 Ответ

1 голос
/ 20 января 2012

Вам нужно использовать функцию и константу {code:...} для доступа к данным из [Code]

Как-то так (непроверенный код воздуха):

[UninstallRun] 
Filename: msiexec.exe; Parameters: "/x ""{code:GetSamplesID}"" /qn"; Check:CheckHasSamplesID(); Flags: runhidden; 

[code]
const
  RegProductLocation = 'SOFTWARE\My Company\My Product\Sample\{#Version}';
var
  SamplesProductId : string;

function CheckHasSamplesID(): Boolean;
begin
  if RegQueryStringValue(HKEY_CURRENT_USER, RegProductLocation, 'ProductID', SamplesProductId) then begin
    Result:= true;
  end else begin
    Result:= false;   
  end;
end;

function GetSamplesID(Param: String): String;
begin
  Result:= SamplesProductId;
end;

Обратите внимание, что быловнешнее пространство в вашей RegProductLocation константе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...