Вниз
Скачать: 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.014 c
4-1173028061
GrayFace
2007-03-04 20:07
2007.09.02
Access Violation в shell32.dll при вызове IFolderView.Items


1-1182934736
rolex2002
2007-06-27 12:58
2007.09.02
Unicode. Функция copy для widestring.


15-1186237904
исследователь
2007-08-04 18:31
2007.09.02
Есть ли среди Мастеров пользователи PlanetSky?


15-1186075207
oldman
2007-08-02 21:20
2007.09.02
Всех с днем ВДВ, кстати...


2-1186930057
Miroving
2007-08-12 18:47
2007.09.02
Зависает Memo. Что делать?




   Наверх