Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 3]
Gnom_aka_Lexander
10-05-2011, 16:06
Вот сама ошибка а именно белый фон на концовке установки. Как его убрать? »
Держи пример - нужно скрыть Ран-лист и создать свой чекбокс, который выполнит эту функцию.
Как прописать атрибут файла Только чтение? В строку Source: добавляю Permissions: everyone-readexec, но ничего не происходит. Что ещё не хватает или как правильно?
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
P.S. Зашёл в топик и сразу был ошарашен: куда я попал?? - "Мня", "ща", "тока"... С каких пор здесь процветает падонкавский жаргон?
Gnom_aka_Lexander
10-05-2011, 19:27
Как прописать атрибут файла Только чтение? »
[Files]
Source: My_file; DestDir: {app}; Attribs: readonly
Зашёл в топик и сразу был ошарашен: куда я попал?? »
этож модно, ниче ты не понимаеш :) А если серьезно - школота уже второй форум загаживает...
Подскажите: Как внести данные(скрипт) в реестр(ключ), после установки программы, например с помощью рег-файла чтобы инсталятор искал рядом этот файлик, а потом тихо запускал или с помощью Inf или еще как то?
Это решение нужно для аддона, чтобы пользователи могли вносить свои ключи.
Gnom_aka_Lexander
10-05-2011, 20:56
Bond01, Можно вот так:
procedure CurStepChanged(CurStep: TSetupStep);
var
reg,RegEdit: string;
ResultCode: Integer;
begin
if CurStep = ssDone then begin //по окончании установки
RegEdit := ExpandConstant('{sys}\reg.exe');// вызов консольной системной утилиты для работы с реестром
reg := ExpandConstant('{src}\') + 'reg.reg'; // берем рег-файл рядом с инсталлом
Exec(RegEdit, ' import ' + ' ' + AddQuotes(reg),ExpandConstant('{src}'),SW_HIDE, ewWaitUntilTerminated, ResultCode); // импортируем файл реестра
end;
поправил пример - была ошибка - CurStepChanged6 - опечатался :) Правильно CurStepChanged
Лександер,
Пишет - Неизвестный идентификатор "RegEdit"
http://s45.radikal.ru/i109/1105/7a/4c376d7b1a3f.jpg
Gnom_aka_Lexander
10-05-2011, 21:38
Bond01, извиняюсь :)
procedure CurStepChanged(CurStep: TSetupStep);
var
reg,RegEdit: string;
ResultCode: Integer;
begin
if CurStep = ssDone then begin //по окончании установки
RegEdit := ExpandConstant('{sys}\reg.exe');// вызов консольной системной утилиты для работы с реестром
reg := ExpandConstant('{src}\') + 'reg.reg'; // берем рег-файл рядом с инсталлом
Exec(RegEdit, ' import ' + ' ' + AddQuotes(reg),ExpandConstant('{src}'),SW_HIDE, ewWaitUntilTerminated, ResultCode); // импортируем файл реестра
end;
solvador
10-05-2011, 21:41
Лександер reg тоже надо добавить
Конечно же это извращение... Так кто подскажет как нормально сделать? »
Конечно :) самое быстрое, это прочитать файл в строку и найти искомое значение через Pos(SubStr, S: String): Integer;
Таких примеров я не встречал »
Всё просто
function ReadFromFile(const FileName, SearchStr: string): Integer;
var
FS: TFileStream;
Buf: AnsiString;
begin
Result := -1;
if not FileExists(FileName) then Exit;
FS := TFileStream.Create(FileName, fmOpenRead);
try
Buf := StringOfChar(#32, FS.Size);
FS.Seek(0, soFromBeginning);
FS.ReadBuffer(Buf, FS.Size);
Result := Pos(SearchStr, Buf);
finally
FS.Free;
SetLength(Buf, 0);
end;
end;
function InitializeSetup(): Boolean;
begin
MsgBox(IntToStr(ReadFromFile(ExpandConstant('{src}\test.bin'), #$C7#$46#$04#$00#$00#$18#$00)), mbInformation, MB_OK);
end;
Добрый день, всем, поиском пользовался, но совершенно безрезультатно, суть проблемы в следующем, скрипт созданный Inno Setup должен запустить ещё один инсталлятор, и автоматически нажать все кнопки <Next>, поставив галочку в "Лицензии", возможно ли такое, если есть пример, если нет дайте хотя бы линк где копать. Пробовал разные параметры, вроде /SILENT и /VERYSILENT - не помогло.
Neutron, дело в том, что я не могу установить, какой у меня тип инсталлятора, поэтому какие я только параметры не подставлял (http://wiki.oszone.net/index.php/%D0%A2%D0%B0%D0%B1%D0%BB%D0%B8%D1%86%D0%B0_%D0%B0%D0%B2%D1%82%D0%BE%D1%83%D1%81%D1%82%D0%B0%D0%BD%D0 %BE%D0%B2%D0%BA%D0%B8)
Neutron, не помогла программка, выдаёт нечто:
USSF detected that the file you selected is a valid PE file.
However, it couldn't identify its type.
The header returned by PEiD was 'Install Stub 32-bit -> InstallShield [Overlay]'
Лександер, опять что-то не то, выдает ошибка компилятора неожиданный конец файла.
Разобрался :)
end;
end;
Спасибо.
solvador
11-05-2011, 15:47
Конечно самое быстрое, это прочитать файл в строку и найти искомое значение через Pos(SubStr, S: String): Integer; » Спасибо за отличный пример :up
insombia
11-05-2011, 20:20
Как сделать чтобы когда создался инсталятор розделеный припустим на 4 диска то его название было setup-1,setup-2,setup-3, setup-4, а не setup-а, setup-b,setup-c,setup-d ?
Можете мне пожалуйста соеденить два скрипта в один а то у меня чего-то не получается
http://forum.oszone.net/attachment.php?attachmentid=63952&stc=1&d=1305134630
insombia в секции [setup] есть параметр SlicesPerDisk(SlicesPerDisk=2) поставь на 1
Здравствуйте, подскажите пожалуйста как можно сделать так, что б при установке скрипт проверял установлена ли программа и если программа установлена, то предлагала обновить ПО , устанавливая только некоторые компоненты из инсталлятора. Заранее спасибо
Neutron, то есть определить ключи не возможно?
кстати PEid выдаёт что инсталлятор - Gentee Installer Custom [Overlay] *, но под него не могу найти ключ, сколько не копаю
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.