Вниз
Скачать: 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 вся ветка

Скачать: CL | DM;



Память: 0.47 MB
Время: 0.015 c
6-1168889887
Jeeb
2007-01-15 22:38
2007.09.02
Подгрузка рисунка по значению


9-1158666426
Nic
2006-09-19 15:47
2007.09.02
Нет диска к книге


8-1164867476
Павел123456
2006-11-30 09:17
2007.09.02
Как "склеить" Bitmap-ы в видео?


15-1186046187
ISP
2007-08-02 13:16
2007.09.02
Google


15-1185968799
Knight
2007-08-01 15:46
2007.09.02
Чем отличаются ADSL-модемы?




   Наверх