Сейчас на форуме: UniSoft, bartolomeo (+6 невидимых)

 eXeL@B —› Программирование —› Inno Setup и реестр в Windows 7
. 1 . 2 . >>
Посл.ответ Сообщение


Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 21 августа 2010 16:14 · Поправил: Talula
· Личное сообщение · #1

Привет всем!
Делаю инсталлятор полной версии плагина. Репак оригинала. Оригинальный инсталлятор спокойно пишет несколько строк в реестр - HKLM (в HKCU пишется нормально). Мой инсталлятор их писать не хочет. Как следствие - установка прекращается. Если подправить реестр руками - не найдёт папку установки.

Самое интересное в том, что если поставить всё через оригинальный инсталлятор, а потом заменить файлы и прописать всего один пунктик в реестр, то всё работает.

В чём косяк-то?

Code:
  1. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc"; Flags: uninsdeletekeyifempty
  2. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria"; Flags: uninsdeletekeyifempty
  3. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria"; ValueName: "base_dir_x86"; ValueType: String; ValueData: "{pf}\Plogue\Aria";
  4. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria"; ValueName: "path_x86"; ValueType: String; ValueData: "{pf}\Plogue\Aria\aria_x86.dll";
  5. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria"; ValueName: "converters_temp"; ValueType: String; ValueData: "{pf}\Plogue\Aria\converters_temp";
  6. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Converters"; ValueName: "dls"; ValueType: String; ValueData: "{pf}\Plogue\Aria\DLS2sfz.exe";
  7. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Converters"; ValueName: "wav"; ValueType: String; ValueData: "{pf}\Plogue\Aria\WAV2sfz.exe";
  8. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Products"; Flags: uninsdeletekeyifempty
  9. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Products\1011"; Flags: uninsdeletekey
  10. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Products\1011"; ValueName: "vendor"; ValueType: String; ValueData: "Garritan"; Flags: uninsdeletekey
  11. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Products\1011"; ValueName: "product"; ValueType: String; ValueData: "ARIA for ACID Pro"; Flags: uninsdeletekey
  12. Root: HKLM; Subkey: "Software\Garritan"; Flags: uninsdeletekeyifempty
  13. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro"; Flags: uninsdeletekeyifempty
  14. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro"; ValueName: "base_dir"; ValueType: String; ValueData: "{app}"; Flags: uninsdeletevalue
  15. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro"; ValueName: "license_path"; ValueType: String; ValueData: "{app}\ARIA.png"; Flags: uninsdeletevalue
  16. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro"; ValueName: "sample_dir"; ValueType: String; ValueData: "{app}\Samples"; Flags: uninsdeletevalue
  17. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro\Settings"; Flags: uninsdeletekey
  18. Root: HKCU; Subkey: "Software\Garritan"; Flags: uninsdeletekeyifempty
  19. Root: HKCU; Subkey: "Software\Garritan\ARIA for ACID Pro"; Flags: uninsdeletekeyifempty


-----
Do Not Get Mad Get Money! ;)





Ранг: 324.3 (мудрец), 222thx
Активность: 0.480.37
Статус: Участник

Создано: 21 августа 2010 17:13
· Личное сообщение · #2

Как тут недавно коллега выразился, цитирую: "в ДНК"

Под 7-кой вроде привилегии еще должны быть на чтение/запись реестра.

-----
IZ.RU





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 21 августа 2010 17:19
· Личное сообщение · #3

DenCoder, какие привелегии? запускаю от админа. оригинальный setup всё пишет же как-то...

-----
Do Not Get Mad Get Money! ;)




Ранг: 129.7 (ветеран), 2thx
Активность: 0.070
Статус: Участник

Создано: 21 августа 2010 18:18
· Личное сообщение · #4

Code:
  1. [Setup]
  2. PrivilegesRequired=admin

Такая строчка есть в скипте?




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 21 августа 2010 18:26
· Личное сообщение · #5

Azur1d, нету. и в оригинальном скрипте её тоже нет.

-----
Do Not Get Mad Get Money! ;)




Ранг: 129.7 (ветеран), 2thx
Активность: 0.070
Статус: Участник

Создано: 21 августа 2010 18:48
· Личное сообщение · #6

А вы попробуйте



Ранг: 56.2 (постоянный), 22thx
Активность: 0.030.08
Статус: Участник

Создано: 21 августа 2010 22:26
· Личное сообщение · #7

и зачем чушь предлагать? - я не один десяток дистрибов на Инно сделал - всё нормально пишется в реестр без спец-привилегий. Код из старттопика тоже без проблем записался - так что проблема не в нем




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 21 августа 2010 22:28
· Личное сообщение · #8

Не знаю, как там в семерке, но пробуй еще это:
Параметр в секции Registry

Permissions: возможные значения

admins Built-in Administrators group
authusers Authenticated Users group
everyone Everyone group
powerusers Built-in Power Users group
system Local SYSTEM user
users Built-in Users group

Также может комбинироваться с:
full
Grants "Full Control" permission, which is the same as modify (see below), but additionally allows the specified user/group to take ownership of the registry key and change its permissions. Use sparingly; generally, modify is sufficient.

modify
Grants "Modify" permission, which allows the specified user/group to read, create, modify, and delete values and subkeys.

read
Grants "Read" permission, which allows the specified user/group to read values and subkeys.

Например: users-modify

А вообще кури хелп.

-----
Array[Login..Logout] of Life





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 21 августа 2010 22:48
· Личное сообщение · #9

Alf, а в чём проблема тогда? тестил на трёх семёрках - результат один и тот же...
Kindly, попробовать-то я попробую... только в оригинальном скрипте этого ничего нет и всё пишется в реестр без проблем...

-----
Do Not Get Mad Get Money! ;)





Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 21 августа 2010 22:50 · Поправил: Kindly
· Личное сообщение · #10

Talula пишет:
только в оригинальном скрипте этого ничего нет

а ты уверен, что секция Registry и Setup правильно парсятся unpacker-ом?

-----
Array[Login..Logout] of Life





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 21 августа 2010 23:10
· Личное сообщение · #11

вот оба инсталлятора:
depositfiles.com/files/hp8l8tg2b

-----
Do Not Get Mad Get Money! ;)





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 21 августа 2010 23:12
· Личное сообщение · #12

Kindly, уверен: на хр всё ставится отлично =)

-----
Do Not Get Mad Get Money! ;)




Ранг: 30.5 (посетитель), 5thx
Активность: 0.010
Статус: Участник

Создано: 22 августа 2010 00:13
· Личное сообщение · #13

может дело в цифровой подписи?




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 22 августа 2010 01:04
· Личное сообщение · #14

а винда 7 64-битная?

-----
Array[Login..Logout] of Life





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 22 августа 2010 05:06
· Личное сообщение · #15

obfuskator, хз...
Kindly, да, 64... а разве есть разница?

-----
Do Not Get Mad Get Money! ;)





Ранг: 1131.7 (!!!!), 447thx
Активность: 0.670.2
Статус: Участник

Создано: 22 августа 2010 06:04
· Личное сообщение · #16

Talula, здесь спецы обитают - поспрашивай.

Azur1d пишет:
Такая строчка есть в скипте?


та пять




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 22 августа 2010 08:54
· Личное сообщение · #17

Gideon Vi, уже спрашивал... молчат...

-----
Do Not Get Mad Get Money! ;)





Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 22 августа 2010 10:29 · Поправил: Kindly
· Личное сообщение · #18

Gideon Vi пишет:
здесь спецы обитают

там реальных спецов можно посчитать на пальцах. Там реально шарящий был Genri, ну и еще пара-тройка человек, которые постят очень редко. Теперь там сборище попрошаек, просящих только реализовать всякую ерунду, вообще не хотят думать.

Talula пишет:
Kindly, да, 64... а разве есть разница?

вообще может быть. Попробуй следующую манипуляцию:

Root: HKLM32; SubKey: SOFTWARE\PopCap\PeggleNights; ValueType: string; ValueName: InstallPath; ValueData: {app}; Check: not IsWin64

Root: HKLM64; SubKey: SOFTWARE\PopCap\PeggleNights; ValueType: string; ValueName: InstallPath; ValueData: {app}; Check: IsWin64

Смысл, я думаю, понятен. Нужно создать две группы вносимых данных, одна для 32, вторая для 64 битныйх систем.

Надеюсь, у тебя последняя версия Inno?

-----
Array[Login..Logout] of Life





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 22 августа 2010 10:45
· Личное сообщение · #19

Kindly, нет... я до сих пор на старой (5.2.3) - оригинальный на такой же версии сделан, кстати...

а смысл в этих записях? софтина их читать не будет...

-----
Do Not Get Mad Get Money! ;)





Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 22 августа 2010 10:51
· Личное сообщение · #20

Глянул я инсталлеры, в оригинальном есть параметр
Check: ifARIAforACIDChecked;
это булевая самописная процедура, а данные реестра должны такие в оригинале:
Code:
  1. [Registry]
  2. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc"; Check: ifARIAforACIDChecked; Flags: uninsdeletekeyifempty
  3. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria"; Check: ifARIAforACIDChecked; Flags: uninsdeletekeyifempty
  4. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria"; ValueType: string; ValueName: "base_dir_x86"; ValueData: "{pf}\Plogue\Aria"; Check: ifARIAforACIDChecked
  5. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria"; ValueType: string; ValueName: "path_x86"; ValueData: "{pf}\Plogue\Aria\aria_x86.dll"; Check: ifARIAforACIDChecked
  6. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria"; ValueType: string; ValueName: "converters_temp"; ValueData: "{pf}\Plogue\Aria\converters_temp"; Check: ifARIAforACIDChecked
  7. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Converters"; ValueType: string; ValueName: "dls"; ValueData: "{pf}\Plogue\Aria\DLS2sfz.exe"; Check: ifARIAforACIDChecked
  8. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Converters"; ValueType: string; ValueName: "wav"; ValueData: "{pf}\Plogue\Aria\WAV2sfz.exe"; Check: ifARIAforACIDChecked
  9. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Products"; Check: ifARIAforACIDChecked; Flags: uninsdeletekeyifempty
  10. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Products\1011"; Check: ifARIAforACIDChecked; Flags: uninsdeletekey
  11. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Products\1011"; ValueType: string; ValueName: "vendor"; ValueData: "Garritan"; Check: ifARIAforACIDChecked; Flags: uninsdeletekey
  12. Root: HKLM; Subkey: "Software\Plogue Art et Technologie, Inc\Aria\Products\1011"; ValueType: string; ValueName: "product"; ValueData: "ARIA for ACID Pro"; Check: ifARIAforACIDChecked; Flags: uninsdeletekey
  13. Root: HKLM; Subkey: "Software\Garritan"; Flags: uninsdeletekeyifempty
  14. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro"; Flags: uninsdeletekeyifempty
  15. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro"; ValueType: string; ValueName: "base_dir"; ValueData: "{app}"; Check: ifARIAforACIDChecked; Flags: uninsdeletevalue
  16. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro"; ValueType: string; ValueName: "sample_dir"; ValueData: "{code:GetSamplesDir}"; Check: ifSamplesChecked; Flags: uninsdeletevalue
  17. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro\Settings"; Check: ifARIAforACIDChecked; Flags: uninsdeletekey
  18. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro\Settings"; ValueType: string; ValueName: "Name"; ValueData: "{code:GetUser|Name}"; Check: ifARIAforACIDChecked; Flags: uninsdeletekey
  19. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro\Settings"; ValueType: string; ValueName: "Company"; ValueData: "{code:GetUser|Company}"; Check: ifARIAforACIDChecked; Flags: uninsdeletekey
  20. Root: HKCU; Subkey: "Software\Garritan"; Check: ifARIAforACIDChecked; Flags: uninsdeletekeyifempty
  21. Root: HKCU; Subkey: "Software\Garritan\ARIA for ACID Pro"; Check: ifARIAforACIDChecked; Flags: uninsdeletekeyifempty


-----
Array[Login..Logout] of Life





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 22 августа 2010 12:29 · Поправил: Talula
· Личное сообщение · #21

Kindly пишет:
Глянул я инсталлеры, в оригинальном есть параметрCheck: ifARIAforACIDChecked;

насколько я понял, это проверка "выбрана ли софтина" при установке. там есть ещё параметр Check: "ifSamplesChecked" - это проверка выбрана ли установка сэмплов. расшифровывать скомпиленый код не хочу, ибо эта проверка на возможность записи в реестр влиять не должна. записи у меня такие же + указан путь к лицензии:
Code:
  1. Root: HKLM; Subkey: "Software\Garritan\ARIA for ACID Pro"; ValueName: "license_path"; ValueType: String; ValueData: "{app}\ARIA.png"; Flags: uninsdeletevalue


-----
Do Not Get Mad Get Money! ;)





Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 22 августа 2010 13:39 · Поправил: Kindly
· Личное сообщение · #22

Попробуй предложенные методы на последней версии Inno. Все равно точно как в оригинале не сделаешь. Главное, чтобы работало.

Как это не влияет? В реестр вносятся только те данные, задачи которых отмечены при установке.

-----
Array[Login..Logout] of Life





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 22 августа 2010 14:47
· Личное сообщение · #23

Kindly, у меня все задачи выполняются по умолчанию и все задачи вносятся в реестр...

-----
Do Not Get Mad Get Money! ;)




Ранг: 55.7 (постоянный), 6thx
Активность: 0.030
Статус: Участник

Создано: 22 августа 2010 15:35
· Личное сообщение · #24

у тебя в скрипте нету строчки
Code:
  1. ArchitecturesInstallIn64BitMode=x64


в оригинальном скрипте она есть.
твои данные пишутся в реестр но для x86 прог.




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 22 августа 2010 15:44
· Личное сообщение · #25

Evol, так у меня и прога (плагин и рантаймы) - 32-бита...

-----
Do Not Get Mad Get Money! ;)




Ранг: 55.7 (постоянный), 6thx
Активность: 0.030
Статус: Участник

Создано: 22 августа 2010 15:54 · Поправил: Evol
· Личное сообщение · #26

Talula
ну в оригинальном инсталере тоже. у тебя данные вносятся в реестр, но не туда куда надо.

а этот ключ скорее всего дает совместимость с x64 (там где она нужна).

п.с.: красиво сделан скин и звук
п.с.2: http://en.wikipedia.org/wiki/WoW64#Registry_and_file_system




Ранг: 275.9 (наставник), 340thx
Активность: 0.22=0.22
Статус: Участник
RBC

Создано: 22 августа 2010 16:53
· Личное сообщение · #27

Talula, а чего ты wave звук воспроизводишь через bass.dll, а не mp3? Тогда зачем библа, если можно:

Code:
  1. [Files]
  2. Source: "C:\sound.wav"; DestDir: "{tmp}"; Flags: dontcopy
  3.  
  4. [Code]
  5. function sndPlaySound(lpszSoundName: string; uFlags: cardinal):integer;
  6. external 'sndPlaySoundA@winmm.dll stdcall';
  7.  
  8. procedure InitializeWizard();
  9. begin
  10.   ExtractTemporaryFile(ExpandConstant('sound.wav')); //Извлекаем звуковой файл во временную папку
  11.   sndPlaySound(ExpandConstant('{tmp}\sound.wav'), $0001 or $0008); //Проигрываем файл. Здесь указаны параметры для повторного проигрывания. Если мы хотим проиграть файл единожды, удаляем параметр 'or $0008'
  12. end;


а по теме еще скажу, что тот сценарий, который извлекается анпакером, соответствует действительности примерно на 60-70 %

-----
Array[Login..Logout] of Life





Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 22 августа 2010 16:59
· Личное сообщение · #28

Evol, т.е. на 32-битной семёрке оно работает нормально?
Kindly, я пробовал когда-то mp3, но звук циклировался с паузой...

-----
Do Not Get Mad Get Money! ;)




Ранг: 55.7 (постоянный), 6thx
Активность: 0.030
Статус: Участник

Создано: 23 августа 2010 01:02 · Поправил: Evol
· Личное сообщение · #29

Talula пишет:
т.е. на 32-битной семёрке оно работает нормально?

вносит в реестр по крайней мере. ошибки в конце, думаю, нормально, т.к. нету оригинальной проги.
"нормально" оно работает и на x64 без той строчки, но видимо не так как тебе нужно в данном случае.

еще замечание одно:
файлы ISSkin.dll и Skin.skin сейчас извлекаются в папку с программой, там и остаются.

add:
Talula пишет:
так и надо: они нужны для анинсталла =)

туплю =)




Ранг: 213.0 (наставник), 4thx
Активность: 0.220
Статус: Участник
Тот ещё Lamer

Создано: 23 августа 2010 03:49
· Личное сообщение · #30

EvolEvol пишет:
файлы ISSkin.dll и Skin.skin сейчас извлекаются в папку с программой, там и остаются.

так и надо: они нужны для анинсталла =)

-----
Do Not Get Mad Get Money! ;)



. 1 . 2 . >>
 eXeL@B —› Программирование —› Inno Setup и реестр в Windows 7
:: Ваш ответ
Жирный  Курсив  Подчеркнутый  Перечеркнутый  {mpf5}  Код  Вставить ссылку 
:s1: :s2: :s3: :s4: :s5: :s6: :s7: :s8: :s9: :s10: :s11: :s12: :s13: :s14: :s15: :s16:


Максимальный размер аттача: 500KB.
Ваш логин: german1505 » Выход » ЛС
   Для печати Для печати