PDA

Показать полную графическую версию : [архив] Inno Setup .:[все вопросы]:.


Страниц : 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 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 [67]

evgenik123456
23-08-2009, 16:23
а у тебя работоет? я имею в виду с путём назначения всё в порядке! значит уменя какойто глюк?

serg aka lain
23-08-2009, 16:30
а у тебя работоет? я имею в виду с путём назначения всё в порядке! »

именно этот код - работает.

evgenik123456
23-08-2009, 16:40
может с ino setup проблемы

serg aka lain
23-08-2009, 17:39
evgenik123456,
Можно ещё и так


; Inno Setup Compiler 5.3.4(u)

[Setup]
AppName=Spore
AppVerName=Spore
DefaultDirName={code:GetInstallDataDir}
AppendDefaultDirName=False
ShowLanguageDialog=auto
OutputDir=userdocs:Spore.


[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl";
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl";

[Code]

function GetInstallDataDir(InstallDataDir: String): String;
begin
RegQueryStringValue(HKLM, 'Software\Electronic Arts\SPORE', 'DataDir', InstallDataDir);
if InstallDataDir <> '' then
Result := InstallDataDir
else
Result := AddBackSlash(ExpandConstant('{pf}\Spore'));
end;
Что есть тоже самое, что и
DefaultDirName={reg:HKLM\Software\Electronic Arts\SPORE,DataDir|{pf}\My Program}

BlackSelf
23-08-2009, 18:41
evgenik123456, чуть-чуть изменил вариант serg aka lain. Попробуйте:
[Setup]
AppName=Spore
AppVerName=Spore
DefaultDirName={code:GetInstallDataDir}
AppendDefaultDirName=False
ShowLanguageDialog=auto
OutputDir=.


[Languages]
Name: "english"; MessagesFile: "compiler:Default.isl";
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl";

[_Code]

function GetInstallDataDir(InstallDataDir: String): String;
begin
RegQueryStringValue(HKLM, 'Software\Electronic Arts\SPORE', 'DataDir', InstallDataDir);
if InstallDataDir <> '' then
Result := RemoveQuotes(InstallDataDir)
else
Result := AddBackSlash(ExpandConstant('{pf}\Spore'));
end;

serg aka lain
23-08-2009, 19:02
BlackSelf,
Так RemoveQuotes(); нужна чтобы кавычки в пути (значении ключа убрать),
обычно их в этой ветке не замечал, но в принципе пускай будет
Result := RemoveQuotes(InstallDataDir), не помешает.

BlackSelf
23-08-2009, 19:07
serg aka lain, просто мне кажется, что подобная проблема:
C:\Program Files (x86)\Inno Setup 5\Examples\Output\"f:\Program Files (x86)\Electronic Arts\SPORE\Data\"
получается из-за того, что путь в реестре заключен в кавычки.

serg aka lain
23-08-2009, 19:16
BlackSelf, возможно, но по умолчанию не видел, чтобы с кавычками было,
как уже и говорил Result := RemoveQuotes(InstallDataDir), не помешает.

Serega
23-08-2009, 19:37
может с ino setup проблемы »
Нет.
Экспортируйте свой ключ в рег файл и покажите его.

но по умолчанию не видел, чтобы с кавычками было, »
serg aka lain, дело в том, что инсталляторы делают люди, ну а в коком виде его туда занесут в таком и будет :) ...
Мне попадались такие, но если экспортировать ключ в рег файл, то строковой параметр обязательно будет в кавычках.

volk1234
23-08-2009, 20:13
Лимит страниц.
Тема закрыта.
продолжаем тут:

Inno Setup. Обсуждение установщика (http://forum.oszone.net/thread-148707.html)

Скрипты Inno Setup. Помощь и советы (http://forum.oszone.net/thread-148703.html)




© OSzone.net 2001-2012