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

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

Автор: sjwrec
Дата сообщения: 07.02.2016 08:20
MihailM

[more=так]
[Code]
procedure TForm1.btn9Click(Sender: TObject);
var
TableC, TableD: string;
IndexC, IndexD: Integer;
begin
TableC:='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
TableD:='27122383464575266727818959959818727662575464383221729876543213';
IndexC:=0;
edt2.Text:='';
repeat
IndexC:= IndexC+1;
for IndexD:=1 to 62 do begin
if
edt1.Text[IndexC] = TableC[IndexD] then begin
edt2.Text:= edt2.Text+TableD[IndexD];
end;
end;
until IndexC = Length(edt1.Text);
end;


// Пример писал в Delphi. Но общий смысл должен быть понятен.
// Код использовал для генерации SteamAID по никнейму
// Далее значение edt2.Text заносилось в INI файл таблетки (3DMGAME.ini) для игры 7DTD.

[/more]


Цитата:
Нашел , только как переименновать , файл который в инсталяторе . А мне надо наоборот . Возможно это как  сделать ?



Код:
[Files]
Source: "FileName.txt"; DestDir: "{app}"; BeforeInstall: BackUp; Flags: ignoreversion

[Code]
procedure BackUp();
begin
RenameFile(ExpandConstant('{app}')+'\FileName.txt', ExpandConstant('{app}')+'\FileName.bak');
end;

Автор: MihailM
Дата сообщения: 07.02.2016 09:44
да по 1-ому примеру , там в цикле у тебя циферка 62 , я так понял это длина полученного пароля (набора цифр и букв) ?
sjwrec не не , мне не системных , это типа апдейта чтоль что то похожее будет .
Автор: sjwrec
Дата сообщения: 07.02.2016 17:50
MihailM

Цитата:
62 , я так понял это длина полученного пароля (набора цифр и букв)


Нет - это количество символов в Table.
Смысл следующий:

Repeat читает по одному символу из никнейма, а for сравнивает его с Table прогоняя все 62 символа, пока не найдёт символ из никнейма.
Если найдёт то записывает его число из Table D в edit 2

Например на мой ник sjwrec - сгенерируется SteamAID = 362419
Автор: MihailM
Дата сообщения: 07.02.2016 19:44
sjwrec , ясно .
блин . а как тогда с рандомить . А то просто нужен какой нить пароль , по клику .
А то в этом языке , еще не разберусь .
А так вот мой пример :
[more=Читать дальше..]

Код:
.....
TableC:='ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789';
IndexC:= IndexC+1;
for IndexD:=1 to 16 do begin
edt2.Text:= edt2.Text+ TableC[Random = длина TableC)];
end;
end;
.....
Автор: Magellano
Дата сообщения: 08.02.2016 00:49
Доброго времени суток!
Помогите пожалуйста со скриптом.

Бэкапит нормально, а возвращает неправильно. Вместо возврата файлов в целевую папку возвращается сама папка, созданная при бэкапе. А в ней уже все резервные файлы.

Т.е., если делался бэкап файлов из папки A (на выходе получили папку А с содержимым), то при восстановлении копируется не содержимое, а вся папка A с содержимым. Как итог в целевой папке A еще одна папка A, а в ней уже нужные файлы.

Скрипт
Автор: sjwrec
Дата сообщения: 11.02.2016 04:50
Magellano
RestoreBackup(ExpandConstant('{app}\Backup\*'));
Попробуйте так сделать. Не уверен что поможет, проверить не могу.
Автор: Hantunyaha
Дата сообщения: 16.02.2016 16:56
Как сделать свою кнопку "Отмена" ?

Родная кнопка должна быть отключена,и вместо ее свою!
Автор: Raf_SE
Дата сообщения: 18.02.2016 00:21
У кого-нибудь есть рабочий код под Inno определяющий наличие того или иного обновления Windows?
Под Делфи я нашёл такие функции тут: https://theroadtodelphi.wordpress.com/2011/03/02/search-for-installed-windows-updates-using-delphi-wmi-and-wua/

В частности эту:

Код: function ISHotFixID_Installed(const HotFixID : string): Boolean;
var
updateSession : OleVariant;
updateSearcher : OleVariant;
updateEntry : OleVariant;
updateSearchResult : OleVariant;
UpdateCollection : OleVariant;
oEnum : IEnumvariant;
iValue : LongWord;
begin
result:=False;
updateSession:= CreateOleObject('Microsoft.Update.Session');
updateSearcher := updateSession.CreateUpdateSearcher;
//this line improves the performance , the online porperty indicates whether the UpdateSearcher goes online to search for updates. so how we are looking for already installed updates we can set this value to false
updateSearcher.online:=False;
updateSearchResult:= updateSearcher.Search(Format('IsInstalled = 1 and Type=%s',[QuotedStr('Software')]));
UpdateCollection := updateSearchResult.Updates;
oEnum := IUnknown(UpdateCollection._NewEnum) as IEnumVariant;
while oEnum.Next(1, updateEntry, iValue) = 0 do
begin
Result:=Pos(HotFixID,updateEntry.Title)>0;
updateEntry:=Unassigned;
if Result then break;
end;
end;
Автор: sjwrec
Дата сообщения: 18.02.2016 14:55
Raf_SE
OleVariant задекларирована в Дельфи. Но когда пытаюсь её найти, она ведёт в System.Variants.dcu а он весь в каракулях. Короче не могу проследить из какой библиотеки он берёт этот класс. Тоже самое и с IEnumvariant. В Inno просто нет этих классов, вот и ругается.
Автор: Raf_SE
Дата сообщения: 18.02.2016 15:19
sjwrec
Ну, это очевидно что данных классов нет. Но может их можно заменить какими-то другими или немного переписать функцию с целью сделать её совместимой с Inno?
Автор: sjwrec
Дата сообщения: 18.02.2016 15:31
Raf_SE
В случае с OleVariant можно попробовать заменить на Variant

А вот IEnumvariant не знаю на что поменять можно.
Автор: dimon4ezzz
Дата сообщения: 27.02.2016 12:52
А что с названием темы? Почему не отображается? У меня в закладках вообще название не отображается
Автор: WildGoblin
Дата сообщения: 27.02.2016 13:58
dimon4ezzz

Цитата:
А что с названием темы? Почему не отображается? У меня в закладках вообще название не отображается
Сбой на сервере был - у всех не отображается.
Автор: Sutar
Дата сообщения: 06.03.2016 21:16
Добрый вечер,
ребят подскажите, перенести страницу "Выбор папки установки в Пуск" на страницу "Выбор папки установки"?
Спасибо)
Автор: TheMultiLamer
Дата сообщения: 07.03.2016 00:28
Скачал Inno Setup (до этого год назад им пользовался), установил.
В конце каждой компиляции (не зависимо от кода) Inno виснет (не отвечает), в последствии чего его приходится закрывать через Диспетчер задач. После закрытия он конечно создает исходный файл (setup.exe), но он не открывается а виснет в диспетчере после открытия.

Если открыть Inno Setup через "Запуск от имени администратора", то после компиляции сам Inno не виснет и компилирует. Однако с исходным файлом тоже самое, не открывается, тупо виснет вместе с папкой и застревает в процессах (диспетчере). Если попробовать перекомпелировать туда же для замены, Inno виснет.

Помогите решить проблему, почему он у меня так тупит.
P.S - Качать более старые версии Inno пробовал, так же пробовал unicode, QuickStart Pack, в каждом одно и тоже.
Автор: MaximusVRN
Дата сообщения: 09.03.2016 11:24
Начиная с версии 5.5.7 при запуске инсталлятора не появляется первое окно с приветствием и заданной картинкой. На версии 5.5.6 всё работает. WizardImageFile задан. После установки окно о завершении с этой картинкой появляется, а вот при запуске куда-то пропало. Есть решение этой проблемы?
Автор: ultimo
Дата сообщения: 09.03.2016 13:21
MaximusVRN
Changelog почитайте. Начиная с версии 5.5.7 окно с приветствием отключено по умолчанию...


Код:
[Setup]
DisableWelcomePage=False
Автор: MaximusVRN
Дата сообщения: 09.03.2016 17:07

Цитата:
MaximusVRN
Changelog почитайте. Начиная с версии 5.5.7 окно с приветствием отключено по умолчанию...


Код:

[Setup]
DisableWelcomePage=False



Решит проблему

Не доглядел, виноват. Спасибо за наводку.
Автор: LOPERTER
Дата сообщения: 12.03.2016 22:26
Поправил "Inno Script Studio" на
Цитата:
Начиная с версии 5.5.7 окно с приветствием отключено по умолчанию

Теперь в окне установки страниц изначально галка включена для отключения окна приветствия.
Если её убрать то студия пропишет нужную запись в скрипт для появления этого окна в установке.
Портабельная "родная" версия с исправленым ISStudio.exe в архиве
Автор: Vovann380
Дата сообщения: 17.03.2016 16:00
Здравствуйте!)
Господа, у меня к вам просьба. Возможно я криворукий или слепой, а может быть что и просто не умею пользоваться поиском, но требуемую информацию найти не смог. Что смог, это всё не то что мне нужно. А нужно мне следующее:

В общем, что бы при установке, мне надо что бы установщик сохранял в архив определённые папки и файлы. Лучше всего что бы это делалось строенным архиватором.
И потом только начиналась установка.

Я не хочу от вас "готовый код", мне бы просто сам способ узнать, пример какой-нить а дальше я как-нить будь сам)
Спасибо
Автор: ultimo
Дата сообщения: 17.03.2016 16:28
Vovann380
в библиотеке ISDone есть подходящая функция


Код:
function ISPackZIP (CurComponent:Cardinal; PctOfTotal:double; InName, OutFile: string; ComprLvl:integer; DeleteInFile:boolean):boolean;
Автор: Vovann380
Дата сообщения: 17.03.2016 16:33
Хорошо, а как мне представить то это в коде ? Этот момент я не понял, как это всё длжно выглядеть то
Автор: ultimo
Дата сообщения: 17.03.2016 16:34
Vovann380
Все есть в примере с библиотекой.
Автор: AlekseyPopovv
Дата сообщения: 19.03.2016 22:26
Как создать свой MsgBox со своими параметрами?
Автор: boss_911
Дата сообщения: 22.03.2016 08:40
Можно скомпилить проект так, чтобы на выходе получился 64-битный инсталлятор (EXE файл)? Или у IS нет 64-битного компилятора? Тогда минус.

Код: ArchitecturesInstallIn64BitMode=x64
Автор: ultimo
Дата сообщения: 22.03.2016 15:37
boss_911
зачем?
Автор: Genri
Дата сообщения: 22.03.2016 15:50
ultimo

Цитата:
зачем?
-- вероятно, чтобы обойти одно из ограничений.

boss_911 -- пока вроде нет. По крайней мере, так указано по ссылке выше. Хотя давно уже не следил за изменениями - могу ошибаться.

Автор: boss_911
Дата сообщения: 22.03.2016 16:44
ultimo
Genri

Инсталлятор должен запускаться в среде, где отсутствует WOW64, короче говоря, на этапе установки Win7/8/10 x64 (boot.wim), если еще проще, то это WinPE x64 без WOW64, 32-битные приложения там попросту не запускаются, по понятным причинам. Проблему решил другим решением, но изначально хотел сделать это с помощью IS, но не судьба (не умеет/реализовано).
Автор: innonewbie
Дата сообщения: 23.03.2016 17:09
boss_911, может быть ArchitecturesAllowed=x64 поможет?
Автор: LOPERTER
Дата сообщения: 23.03.2016 17:48

Цитата:
может быть ArchitecturesAllowed=x64 поможет?

Тогда уж так.
ArchitecturesAllowed=x64 x86

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758

Предыдущая тема: Только инсталлятор


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