Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: boss911
Дата сообщения: 14.11.2008 03:04
Есть ли возможность, через секцию [Registry] (стандартным способом), при деинсталляции, удалить конкретные ключи, но укзав только один ключ с маской, например:

Код: [Registry]
Root: HKCU; SubKey: Software\Classes\File.*; ValueType: none; Flags: uninsdeletekey dontcreatekey
Автор: SiberianGRemlin
Дата сообщения: 14.11.2008 16:42
Подскажите, пожалуйста, как в процедуре CurStepChanged(CurInstallStep: TSetupStep) или другим иным способом сделать по условию невозможность начать установку, т.е. например, программа установки проверяет условие, и если оно не выполнено, а пользователь жмёт "Далее", то выводим сообщение и возвращаемся назад (т.е. не начинаем установку). Сразу отвечу для чего это надо: например, у меня дистрибутив содержит файлов на 10 метров, а во время установки требуется около гига для манипуляций с оригинальными и извлечёнными файлами, а также наличие оригинального файла.

Заранее благодарен.
Автор: noiseless
Дата сообщения: 14.11.2008 16:52
SiberianGRemlin
По поводу проверки места на жестком диске - см. Corona Skin А по поводу наличия определенного файла - лучше помести код, чтобы было понятней где и про проверять

All
Уважаемые!
Подскажите как создавать уникальные имена для созданных инсталляторов. Т.е. скажем при компиляции создавался бы файл EXE с каким-то числом в названии (типа версии файла по дате создания), чтобы не писать ручками при каждой компиляции .
Автор: SiberianGRemlin
Дата сообщения: 14.11.2008 19:07
noiseless
Спасибо за ответ, но для меня он бесполезен, т.к. я спрашивал совершенно иное.
Автор: serg_aka_lain
Дата сообщения: 15.11.2008 00:36
SiberianGRemlin

Цитата:
я спрашивал совершенно иное
[more=Пример проверки места и наличия файла]


[Setup]
AppName=Test
AppVerName=Test v 2.0
DefaultDirName={pf}\Test
OutputDir=.


[Code]

const
NeedSize = 1000;

function NextButtonClick(CurPageID: Integer): Boolean;
var
Dir: string;
FreeMB, TotalMB: Cardinal;
begin
Result := True;
if CurPageID = wpSelectDir then
begin
Dir := ExtractFileDrive(WizardForm.DirEdit.Text);
GetSpaceOnDisk(Dir, True, FreeMB, TotalMB);
if FreeMB < NeedSize then
begin
MsgBox('Мало места!, надо "1000 Мб"', mbInformation, MB_OK);
Result := False;
end;

if not FileExists(ExpandConstant('{app}\file.exe')) then
begin
MsgBox('Нет файла "file.exe"!', mbInformation, MB_OK);
Result := False;
end;
end;
end;

[/more]

Автор: Skolozhabskiy
Дата сообщения: 15.11.2008 03:48
У меня OS Windows Vista Home Basic и я хочу записать в реестр значение языка инсталляции Inno Setup. Пробую это сделать так:

[Registry]
Root: HKCU; Subkey: "Software\Teach Data Pro\InitialDir"; ValueType: string; ValueName: "0010"; ValueData: "{language}"

Приложение инсталлируется нормально, но никакой записи в реестр инсталлятор не вносит. Почему? Как исправить эту проблему? Спасибо.
Автор: noiseless
Дата сообщения: 15.11.2008 10:39
Skolozhabskiy
А есть ли сам раздел [Languages]?
Автор: Skolozhabskiy
Дата сообщения: 15.11.2008 12:45
Есть раздел [Language]

в скрипте все прописано верно, я уже давно использую эту программу.
Мне кажется, что дело в Висте.
Inno Stup вообще не создает никакого ключа.
Даже входа в ветку реестра.
Виста же с адимнистративными правами.
Как изменить код или что делать, чтобы все же записать во время инсталляции что-то в реестр. Не понятно вообще Inno Setup совместима с Вистой или где в коде программы ошибка?

Достучаться до авторов не могу.

Спасибо.
Автор: Diman19
Дата сообщения: 15.11.2008 13:13
Всем привет!Скажите пожалуйста как создать раскрывающиеся список дополнительных компонентов?Список я создал только получилось всё в одном списке.

вот сам код

[Components]
Name: "program"; Description: "Program Files"; Types: full compact custom; Flags: fixed
Name: "help"; Description: "Help File"; Types: full
Name: "readme"; Description: "Readme File"; Types: full
Name: "readme\en"; Description: "English"; Flags: exclusive
Name: "readme\de"; Description: "German"; Flags: exclusive

[Files]
Source: "MyProg.exe"; DestDir: "{app}"; Components: program
Source: "MyProg.chm"; DestDir: "{app}"; Components: help
Source: "Readme.txt"; DestDir: "{app}"; Components: readme\en; Flags: isreadme
Source: "Readme-German.txt"; DestName: "Liesmich.txt"; DestDir: "{app}"; Components: readme\de; Flags: isreadme


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



P.s Также есть вопрос!Как создать дополнительное окно перед установкой где нужно будет вводить специальный ключ?Подскажите пожалуйста.

Спасибо!
Автор: EagleSH
Дата сообщения: 15.11.2008 14:23
господа, как вместо картинки проиграть флэш, анимированный гиф, вообще возможно ли?

Автор: Yekver
Дата сообщения: 15.11.2008 18:44
У меня вопрос следующего характера:
Как можно снять галочку с определённого пункта в секции Tasks? Я пробовал так: IsTaskSelected('fb') = False; , но функция позволяет только проверять значение, а вот как его установить или снять, я не понимаю. Действие должно происходить в функции InitializeSetup.

Заранее спасибо
Автор: braunberg
Дата сообщения: 15.11.2008 18:44
EagleSH
На 76 странице Victor_Dobrov давал ссылки на китайский ресурс с библиотеками, с помощью одной из них Inno Setup GIF можно проиграть GIF
Автор: EagleSH
Дата сообщения: 15.11.2008 18:57
braunberg
спасибо
Автор: putes
Дата сообщения: 15.11.2008 18:57
Подскажите как сделать следующий финт
Идёт установка, шкала показывает ход установки, после установки основного пакета шкала как положено доходит до конца...но далее идёт распаковка файлов из архива, но шкала (установки) уже закончилась...
...как сделать чтобы шкалы хватало и на установку основного пакета и последующих распаковок архивов?
Автор: skeptik_vdm
Дата сообщения: 15.11.2008 20:05
Yekver


Цитата:
У меня вопрос следующего характера:
Как можно снять галочку с определённого пункта в секции Tasks? Я пробовал так: IsTaskSelected('fb') = False; , но функция позволяет только проверять значение, а вот как его установить или снять, я не понимаю. Действие должно происходить в функции InitializeSetup.

Заранее спасибо


Попробуй добавлять в конце строки в секции [Tasks] флаг unchecked. Например

[Tasks]
Name: имя задания; Description: "Имя для отображения в инстале"; GroupDescription: "Группа:"; Flags: unchecked

Здесь именно сама эта фраза Flags: unchecked и отвечает за то чтобы в инсталле не было галочки!

Автор: Don_Juan
Дата сообщения: 16.11.2008 09:02
Подскажите пожалуйста вот с этим кодом. Перед началом копирования файлов вот сделал сообщение типа установить DirectX. Но как сделать чтобы установка DirectX запускалась после копирования файлов?


Код: [code]

var
hWnd, ResultCode: Integer;

function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';


procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssInstall then
begin
WizardForm.Hide;
hWnd:= StrToInt(ExpandConstant('{wizardhwnd}'));
if MessageBox(hWnd, 'Установить DirectX?', 'Установка DirectX', MB_YesNo or $20) = IDYES then
Exec(ExpandConstant('{src}\')+'dxwebsetup.exe', '', '', SW_SHOW, ewNoWait, ResultCode);
WizardForm.Show;
end;
if CurStep = ssPostInstall then
begin
end;
end;
Автор: Yekver
Дата сообщения: 16.11.2008 11:40
Вы меня немного не так поняли, мне нужно чтобы галочка по умолчанию была установлена, но если проверка на наличие определённого ключа возвращает Ложь, то галочка должна сниматься автоматически. Как-то так...
Автор: serg_aka_lain
Дата сообщения: 16.11.2008 13:53
Don_Juan

Цитата:
Но как сделать чтобы установка DirectX запускалась после копирования файлов?

[more=Может такое решение подойдёт]




[Setup]
AppName=DXTEST
AppVerName=DXTEST V 2.0
DefaultDirName={pf}\DXTEST

[Tasks]
Name: DXTEST; Description: "Обновить DirectX"; GroupDescription: "Дополнительно:";

[Run]
Filename: "{src}\dxwebsetup.exe"; WorkingDir: "{src}"; Tasks: "DXTEST";

[Code]

function MessageBox(hWnd: Integer; lpText, lpCaption: String; uType: Cardinal): Integer;
external 'MessageBoxA@user32.dll stdcall';

var
hWnd, ResultCode: Integer;

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectTasks then
begin
if (FileSearch('d3dx9_38.dll', ExpandConstant('{sys}')) = '')
or (FileSearch('d3dx10_38.dll', ExpandConstant('{sys}')) = '') then
begin
WizardForm.TasksList.Checked[1]:= False;
end;
end;
if CurPageID = wpInstalling then
begin
if not IsTaskSelected('DXTEST') then
begin
WizardForm.Hide;
hWnd := StrToInt(ExpandConstant('{wizardhwnd}'));
if MessageBox(hWnd, 'Установить DirectX?', 'Установка DirectX', MB_YesNo or $20) = IDYES then
begin
WizardForm.TasksList.Checked[1]:= True;
end;
WizardForm.Show;
end;
end;
end;

[/more]

Автор: Don_Juan
Дата сообщения: 16.11.2008 14:24
serg_aka_lain

Спасибо. Хорошее решение
Автор: iltmpz
Дата сообщения: 17.11.2008 00:28
Вопрос (возможно, не в тему):
Мне надо сделать не инсталлятор, а лоадер (или даже не знаю, как это правильно назвать).
Т.е, чтобы работало так: есть программа в виде кучи файлов, настроек, exe.
Надо все это "упаковать" в 1 большой exe, но чтобы при запуске оно не устанавливалось, а запускалось.
Каким софтом лучше всего делать такие вещи? Подойдет ли innosetup?
Видел где-то тут в теме разговоры про лоадер, но не совсем понял, то это или нет.
Автор: Andrulko
Дата сообщения: 17.11.2008 01:22
Никак не могу создать скрипт для автоматического восстановления файлов. После установки создается папка Uninstall_ukr, в которую помещаются указанные файлы, все ок. Но когда хочешь восстановить файлы автоматически (при помощи unins000.exe), то всё удаляется, а восстанавливается лишь gta-vc.exe! Не знаю, в чем проблема... Пожалуйста, помогите!

[more=Автоматический Backup/Автоматическое Восстановление][Files]
Source: {app}\gta-vc.exe; DestDir:{app}\Uninstall_Ukr; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\models\fonts.txd; DestDir:{app}\Uninstall_Ukr\models; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\models\fronten1.txd; DestDir:{app}\Uninstall_Ukr\models; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\models\hud.txd; DestDir:{app}\Uninstall_Ukr\models; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\movies\gtatitles.srt; DestDir:{app}\Uninstall_Ukr\movies; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\txd\intro1.txd; DestDir:{app}\Uninstall_Ukr\txd; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\txd\intro2.txd; DestDir:{app}\Uninstall_Ukr\txd; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\txd\Intro3.txd; DestDir:{app}\Uninstall_Ukr\txd; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\txd\intro4.txd; DestDir:{app}\Uninstall_Ukr\txd; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\txd\Loadsc0.txd; DestDir:{app}\Uninstall_Ukr\txd; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\txd\Splash1.txd; DestDir:{app}\Uninstall_Ukr\txd; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: {app}\txd\Splash2.txd; DestDir:{app}\Uninstall_Ukr\txd; Components: "Backup"; Flags: external skipifsourcedoesntexist uninsneveruninstall
Source: "F:\Games\Grand Theft Auto - Vice City\gta-vc.exe"; DestDir: "{app}"; Tasks: "v11"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\anim\gta-vc.exe"; DestDir: "{app}"; Tasks: "v10"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\GTA Vice City Trainer (v1.1).exe"; DestDir: "{app}"; Tasks: "v11"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\GTA Vice City Trainer (v1.0).exe"; DestDir: "{app}"; Tasks: "v10"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\models\fonts.txd"; DestDir: "{app}\models"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\models\fronten1.txd"; DestDir: "{app}\models"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\models\hud.txd"; DestDir: "{app}\models"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\movies\gtatitles.srt"; DestDir: "{app}\movies"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\Text\ukrainian.gxt"; DestDir: "{app}\Text"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\txd\intro1.txd"; DestDir: "{app}\txd"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\txd\intro2.txd"; DestDir: "{app}\txd"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\txd\Intro3.txd"; DestDir: "{app}\txd"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\txd\intro4.txd"; DestDir: "{app}\txd"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\txd\Loadsc0.txd"; DestDir: "{app}\txd"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\txd\Splash1.txd"; DestDir: "{app}\txd"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\txd\Splash2.txd"; DestDir: "{app}\txd"; Flags: ignoreversion
Source: "F:\Games\Grand Theft Auto - Vice City\Info.rtf"; DestName: Readme_UA.rtf; DestDir: "{app}"; Flags: ignoreversion
; NOTE: Don't use "Flags: ignoreversion" on any shared system files

[Code]
procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep=usPostUninstall then
begin
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\gta-vc.exe'),ExpandConstant('{app}\gta-vc.exe'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\models\fonts.txd\'),ExpandConstant('{app}\models\fonts.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\models\fronten1.txd'),ExpandConstant('{app}\models\fronten1.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\models\hud.txd'),ExpandConstant('{app}\models\hud.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\movies\gtatitles.srt'),ExpandConstant('{app}\movies\gtatitles.srt'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\txd\intro1.txd'),ExpandConstant('{app}\txd\intro1.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\txd\intro2.txd'),ExpandConstant('{app}\txd\intro2.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\txd\Intro3.txd'),ExpandConstant('{app}\txd\Intro3.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\txd\intro4.txd'),ExpandConstant('{app}\txd\intro4.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\txd\Loadsc0.txd'),ExpandConstant('{app}\txd\Loadsc0.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\txd\Splash1.txd'),ExpandConstant('{app}\txd\Splash1.txd'),True)
FileCopy(ExpandConstant('{app}\Uninstall_Ukr\txd\Splash2.txd'),ExpandConstant('{app}\txd\Splash2.txd'),True)
DelTree(ExpandConstant('{app}\Uninstall_Ukr'),True,True,True)
end
end;

[Components]
Name: Backup; Description: Створити резервну копію оригінальних файлів; Types: Full[/more]
Автор: Victor_Dobrov
Дата сообщения: 17.11.2008 01:44
iltmpz
Цитата:
есть программа в виде кучи файлов, настроек, exe.
Надо все это "упаковать" в 1 большой exe, но чтобы при запуске оно не устанавливалось, а запускалось.

Да, вопрос не в тему. Inno Setup использовать можно, но это нерационально. Проще сделать SFX-архив при помощи WinRAR.

Если приложению нужны другие файлы или данные из реестра, их можно подготовить при помощи Ashampoo UnInstaller Watcher или Total Uninstall и упаковать в 7-zip архив. Затем, используя модифицированный модуль 7ZSD.sfx, нужно создать SFX-архив.
Вот [more=пример конфигурации]файл конфигурации для 7ZSD.sfx.
Распакует 7zip-архив в %ProgramFiles%\PuzzleHero, импортирует данные реестра и скопирует папку [i]Application Data
в %APPDATA%.[/i]

;!@Install@!UTF-8!
BeginPrompt="Установка программы в указанную папку\t\nи создание ярлыка на 'Рабочем столе'."
ExtractDialogText="Извлечение файлов из архива 7-Zip..."
InstallPath="%ProgramFiles%\\PuzzleHero"
Shortcut="D, {%%T\\PuzzleHero.exe}, {},{},{}, {Puzzle Hero!}, {%%T}"
Shortcut="P, {%%T\\PuzzleHero.exe}, {}, {Игры}, {}, {Puzzle Hero!}, {%%T}"
RunProgram="hidcon:xcopy \"Application Data\*\" \"%APPDATA%\" /S /Y"
RunProgram="regedit /S RegSetup.reg"
GUIFlags="4476"
OverwriteMode="2"
;!@InstallEnd@!

[/more] для модуля 7ZSD.sfx.

Ещё можно сделать Portable-приложение при помощи пакета VMware ThinApp.
Автор: Diawer
Дата сообщения: 17.11.2008 09:13
Ну, как же сделать, что бы при выборе компонента
[Components]
Name: mp1; Description: My Program 1; Flags: exclusive
Name: mp2; Description: My Program 2; Flags: exclusive
на странице "выбора папки меню Пуск" в строке редактирования стояло название компонента, то есть менялось имя из
[Setup]
DefaultGroupName=
Автор: kibill
Дата сообщения: 17.11.2008 10:24
Don_Juan

Код: [Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
if CurStep = ssPostInstall then
begin
// ...
end;
end;
Автор: RMKusto
Дата сообщения: 17.11.2008 11:58
Подскажите пожалуйста, как вставить combobox [more=из этого кода][Code]
var
Label1: TLabel;
ComboBox1: TComboBox;

{ ScriptDlgPages }

function ScriptDlgPages(CurPage: Integer; BackClicked: Boolean): Boolean;
var
Next, NextOK: Boolean;
CurSubPage: Integer;
begin
{ place subpages between 'Welcome'- and 'SelectDir' page }
if (not BackClicked and (CurPage = wpWelcome)) or (BackClicked and (CurPage = wpSelectDir)) then
begin
{ find startpage }
if not BackClicked then
CurSubPage := 0
else
CurSubPage := 1;

{ iterate through all subpages }
while (CurSubPage >= 0) and (CurSubPage <= 1) and not Terminated do
begin
ScriptDlgPageOpen();
ScriptDlgPageClearCustom();

{ insert subpage }
case CurSubPage of
0: // custompage 1
begin
ScriptDlgPageSetCaption('CustomPage1');
ScriptDlgPageSetSubCaption1('Goal of CustomPage1?');
ScriptDlgPageSetSubCaption2('');

{ Label1 }
Label1 := TLabel.Create(WizardForm.ScriptDlgPanel);
with Label1 do
begin
Parent := WizardForm.ScriptDlgPanel;
Left := 16;
Top := 40;
Width := 31;
Height := 13;
Caption := 'Label1';
end;

{ ComboBox1 }
ComboBox1 := TComboBox.Create(WizardForm.ScriptDlgPanel);
with ComboBox1 do
begin
Parent := WizardForm.ScriptDlgPanel;
Left := 8;
Top := 56;
Width := 137;
Height := 21;
TabOrder := 0;
Text := 'Svn';
Items.Add('Svn');
Items.Add('CVS');
end;


Next := ScriptDlgPageProcessCustom();
NextOK := True;
end;

1: // custompage n
begin
{ include other forms here }
end;
end;

{ check sub-page navigation }
if Next then
begin
if NextOK then
CurSubPage := CurSubPage + 1;
end
else
CurSubPage := CurSubPage - 1;
end;

{ check main-page navigation }
if not BackClicked then
Result := Next
else
Result := not Next;
ScriptDlgPageClose(not Result);
end

{ return default }
else
Result := True;
end;

{ NextButtonClick }

function NextButtonClick(CurPage: Integer): Boolean;
begin
Result := ScriptDlgPages(CurPage, False);
end;

{ BackButtonClick }

function BackButtonClick(CurPage: Integer): Boolean;
begin
Result := ScriptDlgPages(CurPage, True);
end; [/more]

В [more=этот][Code]
var
Page1, Page2, Page3: TInputQueryWizardPage;
Page4: TInputDirWizardPage;
ComboBox1: TComboBox;



procedure InitializeWizard();
begin
Page1 := CreateInputQueryPage(wpWelcome,
'Licence key validation', '',
'Please enter your licence key, then click Next.' #13 #13 'Note: Your licence key can be obtained at help.com' #13 #13 #13);
Page1.Add('Licencekey:', False);

Page2 := CreateInputQueryPage(Page1.ID,
'text 1', 'text 2',
'text 3' #13 ' text 4');

Page2.Add('Option 1', False);
Page2.Add('Option 2', False);
Page2.Add('Option 3', False);
Page2.Add('Option 4', False);
Page2.Add (Combobox1, False);




end; [/more], вместо Page2.Add (Combobox1, False); ? ( последняя строчка кода)

Автор: boss911
Дата сообщения: 18.11.2008 02:56
Очень нужна ваша помощь в реализации моей задачм, плиз.

Нужно, чтобы инсталлятор прочел значение определенного параметра (REG_SZ) в реестре и присваивал переменную в скрипте на это полученное значение, чтобы я эту переменную смог указать тут:

Код: [INI]
Filename: {app}\Config.ini; Section: Settings; Key: MyValue; String: %ПЕРЕМЕННАЯ%
Автор: Victor_Dobrov
Дата сообщения: 18.11.2008 04:52
boss911 - ты уже долго здесь тусуешься, но такое впечатление, что справку по Inno никогда не открывал.

Filename: {app}\Config.ini; Section: Settings; Key: MyValue; String: {reg:HKxx\SubkeyName,ValueName|DefaultValue}

Вариант с использованием секции Code:

Filename: {app}\Config.ini; Section: Settings; Key: MyValue; String: {code: RegValue|HKxx\SubkeyName,ValueName}

[Code]
function RegValue(Param: String): String;
begin
Result
:= ExpandConstant('{reg:'+ Param +'}')
end;
Автор: KurtWagner
Дата сообщения: 18.11.2008 15:11
Genri так бы и сразу сказал Не компилится
Автор: ChVL
Дата сообщения: 18.11.2008 15:13
В справке не нашёл константу для следующего пути:
\Documents and Settings\User\Local Settings\Application Data\
Как туда пробраться?
Автор: cdman67
Дата сообщения: 18.11.2008 17:17
{userdocs}\Local Settings\Application Data\

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Презентация


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.