Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно

Пользователь


Сообщения: 149
Благодарности: 38

Профиль | Отправить PM | Цитировать


Johny777, ввод значений так:
[code]
Код: Выделить весь код
procedure AskInstanceName();
begin
 Instancepage:= CreateInputQueryPage(wpSelectComponents,
  ExpandConstant('{cm:InstName}'), ExpandConstant('{cm:InstFolderName}'),
  ExpandConstant('{cm:ChooseInstFolderName}'));
  Instancepage.Add(ExpandConstant('{cm:InstName}'), false);
  if ActiveLanguage = 'russian' then 
    Instancepage.Values[0]:= ExpandConstant('{#InstanceNameRus}')
  else Instancepage.Values[0]:= ExpandConstant('{#InstanceName}');
end;
function NextButtonClick(CurPageID: Integer): Boolean;
var b: boolean;
    path:string;
    RunModeIdx:integer;
begin
 if (CurPageID=Instancepage.ID) then
  begin
  if ((RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\UCS\instances\' + Instancepage.Values[0]))
    and (DirExists(ExpandConstant('{app}')+'\UCS\'+Instancepage.Values[0]+'\Rk7Reference')))
  then
  begin 
    MsgBox(ExpandConstant('{cm:InstNameErr}'), mbInformation, MB_OK);
    result:=false;
  end
  else
   begin
    Instancename:= Instancepage.Values[0];
    path:=ExpandConstant('{app}\UCS\')+Instancename+'\Rk7Reference\';    
    //b:=ForceDirectories(path);
    RefBasePath :=path+'base';      
    BasePathPage.Values[0] := RefBasePath;
    result:=true;
   end;     
  end
...
end;

function GetInstancename(param:string):string; 
begin
 if Instancename='' then 
  if ActiveLanguage = 'russian' then 
    Instancename:= ExpandConstant('{#InstanceNameRus}')
  else Instancename:= ExpandConstant('{#InstanceName}');
 result:=Instancename;
end;
Данные не просто сохраняются после ввода, а используются при установке в именах папок, ини файлах и т д
С реестром не получится, т к значения в него пишутся тоже с учетом того, что ввел пользователь, т е
Код: Выделить весь код
[Registry]
Root: "HKLM"; Subkey: "Software\UCS\instances\{code:GetInstanceName}"; ValueType: string; ValueName: "path"; ValueData: "{app}\UCS\{code:GetInstanceName}"
Вот и получается, что на момент деинсталляции не понятно (мне, по крайней мере), как доступиться до нужных данных, чтобы как раз удалить ненужные ключи реестра и ini файлы.

UPD. И еще нет ли какого-нибудь примера про то, как можно добавить форму к деинсталлятору (в InitializeUninstallProgressForm наверное)? А то у меня что-то толком не получается это сделать, а примеров на эту тему вообще не нашла (

Последний раз редактировалось Shkutu, 03-09-2013 в 18:38. Причина: доп. вопрос


Отправлено: 15:33, 03-09-2013 | #1085