![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Как удалить запись в реестре при установке программы (InnoSetup)? [D7, WinXP]
DrAndrew © (2007-06-22 10:53:00)Уважаемые Мастера! Пожалуйста подскажите, Как удалить запись в реестре при установке программы с использованием инсталлятора InnoSetup? Я прописываю в скрипте следующий код:
B>[Registry]
Root: HKCU; Subkey: "Software\My Program"; Flags: deletekey dontcreatekey
но этот код как и с другими флагами не работает. Мне необходимо удалить ключ именно при установке, до первого открытия программы. Как это сделать? Спасибо всем!
DrAndrew (2007-06-22 12:52:00) [1]И все таки, Мастера, есть принципиальная разница разместить секцию [code] после секции [run] или нет? Или необходимо обязательно секцию [code] прописывать до секции [run]? Спасибо!
ЮЮ (2007-06-22 12:48:00) [2]> Всем большое спасибо за дискуссию!
Дискуссии не наблюдаю :) Ни с InnoSetup-ом, ни с его скриптом не знаком. Просто бросились в глаза явные несуразности. Поэтому и влез, пока контингент для дискуссии подтяивается :)
DrAndrew (2007-06-22 12:44:00) [3]Понял а есть принципиальная разница разместить секцию [code] после секции [run] или нет? Или необходимо обязательно секцию [code] прописывать до секции [run]? Всем большое спасибо за дискуссию!
ЮЮ (2007-06-22 12:39:00) [4]> Хорошо, прописал так:
И что, что-то изменилось? как был маразм
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:30:00) [5]Хорошо, прописал так:
[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:24:00) [6]then begin
procedureInitializeWizard();
какой скрипт такую чушь позволит выполнить?
DrAndrew (2007-06-22 12:17:00) [7]Мастера, почему так:
[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;
выдает ошибку. Что изменить?
DrAndrew (2007-06-22 11:55:00) [8]Еще вопрос - а как проверить есть ли такой ключ ('SoftWare\MyProgram') и только потом его удалить, то есть применить процедуру InitializeWizard()?
DrAndrew (2007-06-22 11:53:00) [9]Спасибо за подсказку! А в каком месте ставить этот код? Это принципиально? И нужно ли тогда прописывать секцию [Registry]?
tesseract (2007-06-22 11:49:00) [10]в скрипте :
[code]
procedure InitializeWizard();
begin
RegDeleteKeyIncludingSubkeys(HKCU, 'SoftWare\MyProgram');
end;
[/code]
должно помочь.