Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
GrizzlyMK,
Спасибо за помощь,но я уже сдвинул сам текст в нижнюю левую часть хода выполнения
Для автозапуска программы из секции [Сode] прописываю:
RegWriteStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Run', 'MyProg', '{src}\MyProg.exe');
Ключ создаётся, но значение ключа прямо в таком виде и остаётся, т. е. константа {src} не раскрывается: (C:\Program Files\...) и запуск, естественно, не происходит. Где ошибка?
Из секции [Registry] всё прописывается и работает нормально, но мне надо из секции [Сode].
R.i.m.s.k.y.
04-05-2010, 14:06
Доброе время суток!
Есть несколько компонентов, А, Б, С, для С трэба компонент А, но для А не нужен С, А - самодостаточен, как сделать так, чтобы при выборе С автоматом ставилась галочка в окне выбора компонентов на А.
Что бы вместе с С ставился А - не вопрос, просто пишем в [Files/Registry] Components A or/and C, как сделать такой фокус в окне выбора компонентов?
Заранее спасибо!
R.i.m.s.k.y.
04-05-2010, 15:05
Где ошибка »
Используйте функцию ExpandConstant('{src}\MyProg.exe')
RegWriteStringValue(HKCU, 'Software\Microsoft\Windows\CurrentVersion\Run', 'MyProg', ExpandConstant('{src}\MyProg.exe'));
не подскажите какая последняя русская версия работает с windows 7? (ну будет работать с путями для файлов)
lmiol,
Inno Setup. Прочие вопросы. (http://forum.oszone.net/showthread.php?p=1201499#post1201499)
Русификатор (http://vadimsva.ucoz.org/Inno_Setup_5_rus.7z) версии 5.3.9 от vadimsva .
Установлена ось: Windows 7 64-bit Ultimate, Отлично работает сборка 5.3.9 ANSI (правда все пути английские).
lmiol,
Inno Setup. Прочие вопросы. (http://www.oszone.net/go.php?url=http://forum.oszone.net/showthread.php?p=1201499#post1201499)
Русификатор (http://www.oszone.net/go.php?url=http://vadimsva.ucoz.org/Inno_Setup_5_rus.7z) версии 5.3.9 от vadimsva .
Установлена ось: Windows 7 64-bit Ultimate, Отлично работает сборка 5.3.9 ANSI (правда все пути английские). »
спс, но я имел ввиду другое
как не старался отыскать но гугл мало выдает)))
Путь к Application Data
вообщем из того что точно знаю и никто не жалуется:
C:\Documents and Settings\имя юзверя\Application Data Windows XP
C:\Users\имя юзверя\AppData\LocalLow\ Windows Vista
не уверен, может кто подскажет как правильно:
C:\Users\имя юзверя\AppData\Roaming Windows 7
R.i.m.s.k.y.,
Спасибо, работает.
lmiol,
Нашёл в инете: Application Data = c:\Users\Вы\AppData\Roaming\
и Аналог "Application Data" в windows 7 это "AppData\Roaming"
Habetdin
04-05-2010, 23:38
lmiol, используйте {userappdata}, {localappdata} и {commonappdata}
R.i.m.s.k.y.
05-05-2010, 08:50
ChVL, lmiol
Во встроенной справке Inno есть много ответов в т.ч. на ваши вопросы, я вот только на свой вопрос ответа не нашел, а ведь видел где-то пример скрипта к моему вопросу, настолько просто, что удалил не задумываясь
Напоминаю вопрос: как сделать в списке выбора компонентов компоненты взаимозависимыми - при выборе одного выбирался автоматом другой, именно в окне выбора компонентов, в секциях Files/Registry просто надо Components A and B;
Поиском пользовался - не нашел, ткните носом если несложно.
R.i.m.s.k.y., может как то так: [Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[code]
var
Check1, Check2, Check3: TCheckBox;
CheckLabel1, CheckLabel2, CheckLabel3: TLabel;
procedure Check1Click(Sender: TObject);
begin
Check2.Checked:= Check1.Checked; //Подставляем значение
Check3.Checked:= Check1.Checked;
Check2.Enabled:= Check1.Checked;
Check3.Enabled:= Check1.Checked;
end;
procedure InitializeWizard;
begin
Check1:= TCheckBox.Create(WizardForm);
Check1.SetBounds(20, 100, 16, 16);
Check1.Checked:=True;
Check1.OnClick:=@Check1Click
Check1.Parent:=WizardForm.SelectDirPage;
CheckLabel1:= TLabel.Create(WizardForm)
CheckLabel1.SetBounds(37, 100, 100, 20);
CheckLabel1.Transparent:=True;
CheckLabel1.Caption:='Доп. програмное обеспечение';
CheckLabel1.Parent:=WizardForm.SelectDirPage;
Check2:= TCheckBox.Create(WizardForm);
Check2.SetBounds(40, 130, 16, 16);
Check2.Checked:=True;
Check2.Parent:=WizardForm.SelectDirPage;
CheckLabel2:= TLabel.Create(WizardForm)
CheckLabel2.SetBounds(57, 130, 100, 20);
CheckLabel2.Transparent:=True;
CheckLabel2.Caption:='Обновить DirectX';
CheckLabel2.Parent:=WizardForm.SelectDirPage;
Check3:= TCheckBox.Create(WizardForm);
Check3.SetBounds(40, 160, 16, 16);
Check3.Checked:=True;
Check3.Parent:=WizardForm.SelectDirPage;
CheckLabel3:= TLabel.Create(WizardForm)
CheckLabel3.SetBounds(57, 160, 100, 20);
CheckLabel3.Transparent:=True;
CheckLabel3.Caption:='Еще что-нибудь';
CheckLabel3.Parent:=WizardForm.SelectDirPage;
end;
R.i.m.s.k.y.
05-05-2010, 13:27
может как то так »
Там было очень просто что-то вроде components a and b или Name a and b, но не в секциях Registry/Files
R.i.m.s.k.y.,
Помимо списка, можно использовать логические выражения в качестве параметров Components и Tasks. Поддерживаемые операторы: not, and и or. Например:
[Components]
Name: a; Description: a
Name: b; Description: b
[Tasks]
Name: p; Description: a or b; Components: a or b
Name: q; Description: a and b; Components: a and b
Name: r; Description: not a or b; Components: not a or b
Name: s; Description: not (a or b); Components: not (a or b)
Name: t; Description: a or b - old style; Components: a b
R.i.m.s.k.y.
05-05-2010, 14:22
Это?
Помимо списка, можно использовать логические выражения в качестве параметров Components и Tasks. Поддерживаемые операторы: not, and и or. Например »
Похоже но...
В общем для Б нужен А, если выбираем Б - автоматом ставится галочка на А.
YURSHAT, как к твоему скрипту для NFS Undercover прикрутить фриарк? У меня пока что не получается с прогрессбаром =)
R.i.m.s.k.y.
06-05-2010, 10:18
Есть функция IsComponentSelected(const Components: String): Boolean; - возвращает True если выбран компонент, а есть ли обратная - присваивает компоненте "выбранность"?
По номеру компоненты не годится - они постоянно "гуляют" и номера сбиваются.
Можно работать в коде не с номерами (WizardForm.ComponentsList.Checked[2]), а с именами?
Назрел такой вопрос.Не могу создать ярлык мода,для информации BattleField 2 Special Forces.Exe файла в папке с модом нет но в исходнике установленной игры в ярлыке использовался данный путь "D:\Games\Battlefield 2\BF2.exe" +menu 1 +fullscreen 1 +modPath mods/xpack +ignoreAsserts 1 Подскажите что сделать.Пользуюсь скриптом от YURSHAT
alex2010
07-05-2010, 16:42
ImAge,
[Icons]
Name: {group}\Играть; Filename: {app}\BF2.exe; Parameters: "+menu 1 +fullscreen 1 +modPath mods/xpack +ignoreAsserts 1"
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.
Available in ZeroNet 1osznRoVratMCN3bFoFpR2pSV5c9z6sTC