Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.09.02;
Скачать: CL | DM;

Вниз

Как удалить запись в реестре при установке программы (InnoSetup)?   Найти похожие ветки 

 
DrAndrew   (2007-06-22 10:53) [0]

Уважаемые Мастера! Пожалуйста подскажите, Как удалить запись в реестре при установке программы с использованием инсталлятора InnoSetup? Я прописываю в скрипте следующий код:
B>[Registry]
Root: HKCU; Subkey: "Software\My Program"; Flags: deletekey dontcreatekey

но этот код как и с другими флагами не работает. Мне необходимо удалить ключ именно при установке, до первого открытия программы. Как это сделать? Спасибо всем!


 
tesseract ©   (2007-06-22 11:49) [1]

в скрипте :

[code]
procedure InitializeWizard();
begin
  RegDeleteKeyIncludingSubkeys(HKCU, "SoftWare\MyProgram");
end;
[/code]

должно помочь.


 
DrAndrew   (2007-06-22 11:53) [2]

Спасибо за подсказку! А в каком месте ставить этот код? Это принципиально? И нужно ли тогда прописывать секцию [Registry]?


 
DrAndrew   (2007-06-22 11:55) [3]

Еще вопрос - а как проверить есть ли такой ключ ("SoftWare\MyProgram") и только потом его удалить, то есть применить процедуру InitializeWizard()?


 
DrAndrew   (2007-06-22 12:17) [4]

Мастера, почему так:
[code]
if RegValueExists(HKEY_CURRENT_USER, "Software\Teach Yourself Pro\LastDir", DirPath) then
begin
  procedure InitializeWizard();
  begin
     RegDeleteValue(HKCU, "Software\Teach Yourself Pro\LastDir", DirPath);
  end;
end;

выдает ошибку. Что изменить?


 
ЮЮ ©   (2007-06-22 12:24) [5]

then begin
 procedure InitializeWizard();


какой скрипт такую чушь позволит выполнить?


 
DrAndrew   (2007-06-22 12:30) [6]

Хорошо, прописал так:
[code]
function MyCheckedRegValue(): Boolean;
begin
 if RegValueExists(HKEY_CURRENT_USER, "Software\My Program\LastDir",   DirPath) then
 begin
   procedure InitializeWizard();
   begin
      RegDeleteValue(HKCU, "Software\My Program\LastDir", DirPath);
   end;
  end;
end;

ругаетсяю что нельзя вызывать InitializeWizard(). Что делать?


 
ЮЮ ©   (2007-06-22 12:39) [7]

> Хорошо, прописал так:

И что, что-то изменилось? как был маразм
then begin
 procedure

так и остался

если [1] работает, почему туда проверку не добавить?

procedure InitializeWizard();
begin
 if RegValueExists(HKEY_CURRENT_USER, "Software\My Program\LastDir",   DirPath) then
   RegDeleteValue(HKCU, "Software\My Program\LastDir", DirPath);
end;


 
DrAndrew   (2007-06-22 12:44) [8]

Понял а есть принципиальная разница разместить секцию [code] после секции [run] или нет? Или необходимо обязательно секцию [code] прописывать до секции [run]? Всем большое спасибо за дискуссию!


 
ЮЮ ©   (2007-06-22 12:48) [9]

> Всем большое спасибо за дискуссию!


Дискуссии не наблюдаю :) Ни с InnoSetup-ом, ни с его скриптом не знаком. Просто бросились в глаза явные несуразности. Поэтому и влез, пока контингент для дискуссии подтяивается :)


 
DrAndrew   (2007-06-22 12:52) [10]

И все таки, Мастера,  есть принципиальная разница разместить секцию [code] после секции [run] или нет? Или необходимо обязательно секцию [code] прописывать до секции [run]? Спасибо!



Страницы: 1 вся ветка

Текущий архив: 2007.09.02;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.023 c
2-1186934620
Arx
2007-08-12 20:03
2007.09.02
Вопрос по ООП


4-1173115326
Dmitry_177
2007-03-05 20:22
2007.09.02
Курсор над кнопкой


9-1159184845
!Trinix
2006-09-25 15:47
2007.09.02
Snap Cubemap


1-1182685511
WebSQLNeederr
2007-06-24 15:45
2007.09.02
Как удалить пустые строки в Мемо


8-1164182824
DancerMan
2006-11-22 11:07
2007.09.02
*.JPEG true color -> 256 grays