Войти

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


Страниц : 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105

R.i.m.s.k.y.
12-12-2011, 13:39
Gugle, симметрично доброго!

а случайно системная функция NeedRestart не переопределена?

nugzari
12-12-2011, 20:20
Здравствуйте! Помагите пожалуйста создать такие окна инсталяции http://www.imageup.ru/img115/snimok4837908.jpg и http://www.imageup.ru/img115/snimok5837909.png заранее спасибо!

TROY Diamond
12-12-2011, 20:37
Как с помощью [INI] или как-то по другому создать файл, текстовый и другие, НО ТОЛЬКО С ОДНИМ ЗНАЧЕНИЕМ "ВНУТРИ", БЕЗ параметра, никаких "Section", "InstallPath", НЕ надо!
Только одно значение БЕЗ всего - в одну строчку, без кавычек, тире, двоеточий, типа открыл это файл, а там только:

htuifgvifgj4575489jgfkgfmgf765авроршгщ

и всё больше ничего нет!

R.i.m.s.k.y.
12-12-2011, 20:46
TROY Diamond, функция SaveStringToFile или SaveStringsToFile

TROY Diamond
12-12-2011, 22:13
TROY Diamond, функция SaveStringToFile или SaveStringsToFile »

А куда её писать то?

R.i.m.s.k.y.
12-12-2011, 22:21
TROY Diamond, паскалевские функции пишутся только в Code

TROY Diamond
12-12-2011, 23:20
Как сделать, чтобы установка продолжалась, ТОЛЬКО после "прочтения" Лицензионного соглашения и/или какого-то сообщения.
Я видел, к примеру, кнопки не активные, пока не прокрутишь текст до самого низа...

mopsicus
13-12-2011, 12:48
Подскажите как перед установкой программы, удалить какой либо ярлык? Можно это сделать средствами установщика или надо писать скрипт?

спасибо

R.i.m.s.k.y.
13-12-2011, 15:54
Как с помощью [INI] или как-то по другому создать файл, текстовый и другие, НО ТОЛЬКО С ОДНИМ ЗНАЧЕНИЕМ "ВНУТРИ", БЕЗ параметра, никаких "Section", "InstallPath", НЕ надо!
Только одно значение БЕЗ всего - в одну строчку, без кавычек, тире, двоеточий, типа открыл это файл, а там только »

или досовская команда echo
echo www > c:\1.txt
в корне диска ЦЭ будет файлик 1.txt с содержимым www

TROY Diamond
13-12-2011, 17:21
в корне диска ЦЭ будет файлик 1.txt с содержимым www »

Мне нужно в папке установки и одним значением...

TROY Diamond
13-12-2011, 18:54
Как задать в свойствах ярлыка или где, чтобы прога запускалась, только с правами Администратора? На Висте и 7-ке ярлык со "щитом." Или это только в Манифесте прописывается?

YURSHAT
13-12-2011, 19:03
TROY Diamond
Как с помощью [INI] или как-то по другому создать файл, текстовый и другие, НО ТОЛЬКО С ОДНИМ ЗНАЧЕНИЕМ "ВНУТРИ", БЕЗ параметра, никаких "Section", "InstallPath", НЕ надо!
Только одно значение БЕЗ всего - в одну строчку, без кавычек, тире, двоеточий, типа открыл это файл, а там только:
htuifgvifgj4575489jgfkgfmgf765авроршгщ
и всё больше ничего нет! »

Можно так (http://rghost.ru/34558391)

TROY Diamond, Как сделать, чтобы установка продолжалась, ТОЛЬКО после "прочтения" Лицензионного соглашения и/или какого-то сообщения.
Я видел, к примеру, кнопки не активные, пока не прокрутишь текст до самого низа... »

Держите [Setup]
AppName=My Program
AppVerName=My Program v.1.2
DefaultDirName={pf}\My Program
LicenseFile=compiler:License.txt

[Files]
Source: compiler:InnoCallback.dll; Flags: dontcopy

[Code_]
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: LongWord);
const
EM_GETFIRSTVISIBLELINE = $CE; TestLine = 5;
var
TimerID: LongWord;

function WrapTimerProc(callback:TProc; paramcount:integer):longword; external 'wrapcallback@files:innocallback.dll stdcall';
function SetTimer(hWnd: LongWord; nIDEvent, uElapse: LongWord; lpTimerFunc: LongWord): LongWord; external 'SetTimer@user32.dll stdcall';
function KillTimer(hWnd: LongWord; nIDEvent: LongWord): LongWord; external 'KillTimer@user32.dll stdcall';

procedure OnTimer(HandleW, msg, idEvent, TimeSys: LongWord);
var
CurrLine: integer;
begin
CurrLine:= SendMessage(WizardForm.LicenseMemo.Handle, EM_GETFIRSTVISIBLELINE, 0, 0);
If CurrLine >= TestLine then
begin
WizardForm.LicenseAcceptedRadio.Enabled:= True;
KillTimer(0, TimerID);
end;
//WizardForm.Caption:= IntToStr(CurrLine);
end;

procedure InitializeWizard();
begin
WizardForm.LicenseAcceptedRadio.Enabled:= False;
end;

procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
begin
if CurPageID = wpLicense then
begin
pfunc:= WrapTimerProc(@OnTimer, 4);
TimerID:= SetTimer(0, 0, 500, pfunc);
end else
KillTimer(0, TimerID);
end;

procedure DeinitializeSetup();
begin
KillTimer(0, TimerID);
end;


Как задать в свойствах ярлыка или где, чтобы прога запускалась, только с правами Администратора? »
О свойствах ярлыка - читаем справку к инно

semiono
13-12-2011, 21:59
Мне нужен код чтобы разрешить установку части контента, но только при помощи ключа.
Например:
MyProg.exe /verysilent /x1 /x2 итд...
Чтобы из секции файлов копировались файлы с флагом Code: {x1} и Code: {x2} и остальные как обычно.
Просто не помню как к коду это привязать.
GUI диалог мне не нужен! Только средством ключей, и хотя бы пару покажите, ато я сам запутаюсь.
---
И ещё мне нужен ключ, чтобы указать путь установки: /PATH=... Как это в InnoSetup работает, есть ли ограничения?
Всмысле мне нужно чтобы путь указывался только посредством ключа коммандной строки,
а в GUI режиме не было возможности указать путь. Это возможно? Покажите пожалуйста?

boss911
13-12-2011, 23:40
как перед установкой программы, удалить какой либо ярлык? »
[InstallDelete]
Name: {userdesktop}\shortcut.lnk; Type: files

semiono
14-12-2011, 01:39
Помогите, пожалуйста!
Мне нужно чтобы

[Files]
... Components: a
... Components: b
...
чтобы компоненты a и b поумолчанию не устанавливались, и устанавливались только при явном их выборе. Причём нужен выбор этих компонентов из коммандной строки, например, /A /B и не зависимо друг от друга.
Графический (GUI) выбор компонентов совсем не нужен и лучше его скрыть, тем более что файлы
группы A и B по умолчанию исключены.

Проще говоря нужно такое
файл_1 установить = да
файл_2 установить = да
файл_3 установить = нет
файл_4 всегда установить
итп.

управление только с коммандной строки, хотя в худшем случае можно продублировать в GUI

R.i.m.s.k.y.
14-12-2011, 07:43
Мне нужен код чтобы разрешить установку части контента, но только при помощи ключа. »

ну примерно так:

[Files]
Check: Check_X1; Source: x1files; DestDir: {app}\; Flags: ignoreversion noencryption
Check: Check_X2; Source: x2files; DestDir: {app}\; Flags: ignoreversion noencryption

[*C*ODE]
var x1, x2 : boolean;

Function Check_X1() : boolean;
begin
If x1 = true then Result := True else Result := False;
end;

Function Check_X2() : boolean;
begin
If x2 = true then Result := True else Result := False;
end;

Function InitializeSetup: Boolean;
var
i : integer; st : string;
Begin
x1 := false; x2 := false;
for i:=2 to ParamCount do begin
st := Lowercase(ParamStr(i));
Result := True;
case st of
Lowercase('/x1') : x1 := true;
Lowercase('/x2') : x2 := true;
end; //case
Result := True;
end;//for
end;//InitializeSetup

если параметров Х1/Х2 много, имеет смысл загнать проерку в одну спецфункцию Check_X где в цикле проверять какие из них назадавали в комстроке, но тут в моем мозгу происходит переполнение стека и родить такую я не могу, даже себе

по поводу компонентов - инно поддерживает сам параметр /COMPONENTS="a,b"
читай в справке Setup Command Line Parameters

semiono
14-12-2011, 15:02
i is unknown parameter! я паскаль не знаю, как поправить? определил как i : integre, сразу последовало тоже самое с st
---
если параметров Х1/Х2 много, имеет смысл загнать проерку в одну спецфункцию Check_X где в цикле проверять какие из них назадавали в комстроке »
не мне много не надо, разобью на группы контент, хотя бы пару ключей хватит :)

R.i.m.s.k.y.
14-12-2011, 15:30
semiono,
поправил верхнее сообщение

Function InitializeSetup: Boolean;
var
i : integer; st : string;

Photon9
14-12-2011, 15:30
мой вопрос наверное с большой бородой и не раз задавался, тем не менее немогу разобратся, суть проблемы такова - имеется игра и имеется дополнительный софт (GfWL, visual c++, directx и т.д.) собственно необходимо даный софт прописать в скрипте так чтобы в процессе установки в инсталятора были опции (снять-поставить галочку) с выбором устанавливать или нет даный софт, как ни ковыряю скрипт получается только прописать распаковывать при установке в папку с игрой софт или нет, а вот установку как запустить немогу понять.
З.Ы. Надеюсь понятно описал суть проблемы и не очень сумбурно

semiono
14-12-2011, 15:37
Ура! Кажись работает как надо! Только end ещё один не хватало...
i: Integer;
st : String;




© OSzone.net 2001-2012