powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Установка флагов в секции [Code]. Inno Setup
5 сообщений из 5, страница 1 из 1
Установка флагов в секции [Code]. Inno Setup
    #38628843
TopCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Каким образом я могу установить флаги для ключей/значений реестра в секции
Код:
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
?

 [code=plaintext];[Registry]
;Root: "HKCU"; Subkey: "Software\Microsoft\Office\14.0\Excel\Options"; ValueType: string; ValueName: "OPEN1"; ValueData: "C:\Users\UserName\AppData\Roaming\Microsoft\AddIns\AddIn.xlam"; Flags: createvalueifdoesntexist uninsdeletevalue

[code]
procedure CurStepChanged(CurStep: TSetupStep);
var
  ValueExists: Boolean;
  AddInCount: Integer;
  ValueName: String;
  SubKey: String;
  Data: String;
begin
  if (CurStep = ssInstall) then
  begin
    ValueExists := false;
    AddInCount := 0;
    SubKey := 'Software\Microsoft\Office\14.0\Excel\Options';
    ValueName := 'OPEN';
    Data := 'C:\Users\' + GetUserNameString() + '\AppData\Roaming\Microsoft\AddIns\AddIn.xlam';
    repeat
      if (not RegValueExists(HKEY_CURRENT_USER, SubKey, ValueName)) then
      begin
        RegWriteStringValue(HKEY_CURRENT_USER, SubKey, ValueName, Data);
        ValueExists := true;
      end
      else
      begin
        AddInCount := AddInCount + 1;
        ValueName := ValueName + IntToStr(AddInCount);
      end;
    until ValueExists;
  end;
end;

Спасибо.
...
Рейтинг: 0 / 0
Установка флагов в секции [Code]. Inno Setup
    #38628887
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А теперь тоже самое, но по-русски. :)
...
Рейтинг: 0 / 0
Установка флагов в секции [Code]. Inno Setup
    #38628899
TopCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В секция [Registry] содержаться флаги createvalueifdoesntexist uninsdeletevalue. Я эту секцию не использую, потому что мне нужно динамически узнать последнее значение с приставкой OPEN в ключе и в функции выставить эти флаги (чтобы при удалении надстройки удалялось из реестра необходимое). Проще говоря, я секцию [Registry] заменил секцией [code].
...
Рейтинг: 0 / 0
Установка флагов в секции [Code]. Inno Setup
    #38628947
Фотография wadman
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Например, у регистри можно указать "не создавать ключ", а только "удалить".

Другой вариант, при удалении из кода проверить ссылку на свой аддон и при наличии, удалить.
Код: sql
1.
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
...
Рейтинг: 0 / 0
Установка флагов в секции [Code]. Inno Setup
    #38628958
TopCore
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
wadman, точно. Спасибо.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Программирование [игнор отключен] [закрыт для гостей] / Установка флагов в секции [Code]. Inno Setup
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]