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

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

Автор: RAZOR1212
Дата сообщения: 20.04.2012 09:06
Как ее перемести сюда?
http://i37.fastpic.ru/big/2012/0420/11/2abf0ad786d00e40e88fb414cdf36111.png
вот скрипт
http://rghost.ru/37674379
Автор: ZverBY
Дата сообщения: 20.04.2012 20:19
Уберите, пожалуйста, распаковку ARC-архивов и др. архивов, а так же всякого мусора, связанного с этим, из этого скрипта !!!, т.е. чтобы стала самая обычная установка(lzma), а не распаковка архивов !!!
Вот скрипт
У меня что-то не получается !!!
Автор: aidarsimon
Дата сообщения: 21.04.2012 16:26
А как в зависимости от разрядности системы прописывать соответствующие ключи в реестре?

Вот так не получается:


Код: [Registry]
Root: HKLM; SubKey: SOFTWARE\game\1.0; Check: not IsWin64;
Root: HKLM; SubKey: SOFTWARE\Wow6432Node\game\1.0; Check: IsWin64;
Автор: Gnom3
Дата сообщения: 21.04.2012 20:49
aidarsimon
Вот так:

Код: [Registry]
Root: HKLM; SubKey: SOFTWARE\game\1.0;
Автор: aidarsimon
Дата сообщения: 21.04.2012 20:58
Gnom3
Помню, что раньше не подставляла, а с какой версии пошла "правильная установка" ?
Автор: Tapas77789
Дата сообщения: 21.04.2012 21:58
ZverBY

Пробуй
Автор: ZverBY
Дата сообщения: 22.04.2012 10:45
Tapas77789, спасибо !!!
Автор: Gnom3
Дата сообщения: 22.04.2012 20:00
aidarsimon
Если честно - не знаю. я инно увлекся где-то с версии 5.3.9 , вроде уже там все работало.
Автор: aidarsimon
Дата сообщения: 23.04.2012 07:56
Gnom3
Встречал инсталляторы, которые некорректно прописывались в 64 разрядных системах, вместо Wow6432Node писали прямо в корень раздела
А это может зависеть, на какой винде компилировался проект? Может если компилируется под x64, то сразу в него "вшит" "распознавальщик" ?
Автор: Gnom3
Дата сообщения: 23.04.2012 09:11
Нет. есть два типа корня - HKLM он-же HKLM32 и HKLM64 - в последнем случае пропишет без этой подпапки. и есть параметр ArchitecturesInstallIn64BitMode в секции [Setup] - если выставить его в yes, (что некоторые необоснованно рекомендуют ) то так-же запишет без подпапки Wow6432Node .
Автор: nonikams
Дата сообщения: 23.04.2012 13:19
Кто знает, какой скрипт и файлы применялись здесь

В установленном виде игра весит 1,39 ГБ! Ни как не получается её сжать до 308 MB!
Каким методом сжимать: srep+7z+precomp+arc или 7z+precomp+arc? Автор молчит!
Автор: aidarsimon
Дата сообщения: 23.04.2012 13:34
Gnom3
Честно, не понял. По идее инно сам определит какая разрядность и корректно себя запишет или это зависит от того, где компилился проект? Вот вопрос в чём
Автор: Gnom3
Дата сообщения: 23.04.2012 15:00
aidarsimon
Это не зависит, где компилится проект. А в предыдущем посте я просто описал возможные причины указанного тобой косяка. То-есть, по умолчанию инно компилит х32 инсталлятор со всеми вытекающими, если вручную не указать обратного.
Автор: aidarsimon
Дата сообщения: 23.04.2012 15:45
Gnom3
Понятно. Найти бы ещё тот установочник - точно бы версию сказал. А так гадать бессмысленно
Автор: dinazav
Дата сообщения: 23.04.2012 21:13
Всем привет. Ребята, столкнулся вот с такой проблемой:

Загружаю данные из текстового файла функцией LoadStringsFromFile, пример:

procedure Load;
var Lines: TArrayOfString;
begin
LoadStringsFromFile('F:\file.txt', Lines);
end;

Загвоздка вот в чем. Если текстовый файл в формате ANSI, то все нормально читает. Если же файл в формате "Юникод", то начинаются проблемы. Строки загружаются в Lines некоректно.

Содержимое файла такой кодировки читается нормально: http://i34.fastpic.ru/big/2012/0424/6a/9afeb290de1443201cc743673d8b186a.jpg

А вот с такой кодировкой уже проблемы: http://i33.fastpic.ru/big/2012/0424/e0/2776d7e99d3fdff2382d69870af43be0.jpg

Интересный момент. Использовал функцию SaveStringsToFile('F:\file2.txt',Lines,true); Сразу после LoadStringsFromFile('F:\file.txt', Lines); т.е. загнал текст из файла в буфер и сразу из буфера в другой файл, чтобы глянуть как все работает.

Текст исказился (добавились непонятные символы) и вот такая кодировка получилась: http://i35.fastpic.ru/big/2012/0424/27/d0292ff8b677da6773832e0b46d9ac27.jpg

Юникс, мдяяяя... Кто знает, как лечить эту беду? Читаемый файл нельзя менять, а инфа в нем важная.

У меня ОС Windows 7 x64 максимальная. Inno Setup 5.4.3 (a).

Заранее спасибо.
Автор: Nasgul1987
Дата сообщения: 24.04.2012 01:51
dinazav
а почему юникод версию инно не использовать? Она как раз под работу с этой самой кодировкой заточена
здесь http://innoultra.ru/ есть например
Автор: dinazav
Дата сообщения: 24.04.2012 11:51
Nasgul1987
Вообще то моя версия innosetup тоже поддерживает юникод. Но я все равно скачал ту, что ты мне предложил, удалил свою и установил скаченную. Порадовал русский язык, редактор форм и другие фичи. Кстати, прежний и новый компиляторы имеют одинаковую версию. Отличаются только буквенные индексы в конце.

Однако запустив скрипт свой, по прежнему все работает так как я и писал выше. При попытке загрузить текст из текстового файла с кодировкой UTF-16 функцией LoadStringsFromFile возникают проблемы.

Может есть какой альтернативный способ? Например конвертировать из unicode в ANSI и т.п.
У меня дальше в скрипте идет анализ строк текста в буфере Lines и, естественно, все работает неправильно.
Автор: Gnom3
Дата сообщения: 24.04.2012 13:39
dinazav
попробуй сконвертить текст в анси. у меня была как-то обратная задача, нужно было анси текст сохранять в юникодной кодировке, в итоге несколько человек отдельно друг от друга сделали алгоритмы конвертирования. самый универсальный - от Serega0675. Ссылка. Остальные варианты по ссылке данной товарищем Nasgul1987 на странице "Готовые решения".
Автор: dinazav
Дата сообщения: 24.04.2012 14:56
Gnom3
Спасибо большое! Все рассмотрел. Буду пробовать.
По поводу универсального скрипта от Serega0675. Там он работает со строками которые уже загружены, но меня беспокоит следующее: строки могут "биться" в момент загрузки текста из файла в буфер. Т.е. сама функция LoadStringsFromFile похоже не понимает юникод. Вот скрипт от htuos работает непосредственно с самим файлом. Правда кодировка там UTF-8.

[Setup]
AppName=My Program
AppVerName=My Program 1.5
DefaultDirName={pf}\My Program

[Files]
Source: fAnsi2Utf8.dll; Flags: dontcopy

[Code]
procedure ConvertFileAnsiToUTF8(SrcFileName,DstFileName:PAnsiChar;WithBOM:boolean); external 'ConvertFileAnsiToUTF8@files:fAnsi2Utf8.dll stdcall';
procedure ConvertFileUTF8ToAnsi(SrcFileName,DstFileName:PAnsiChar); external 'ConvertFileUTF8ToAnsi@files:fAnsi2Utf8.dll stdcall';
//если SrcFileName=DstFileName то файл будет заменен на перекодированный, в противном случае создастся новый файл

function InitializeSetup:boolean;
begin
ConvertFileAnsiToUTF8('test.txt','utf8_test.txt',True); //конвертируем ANSI-файл в UTF8
ConvertFileUTF8ToAnsi('utf8_test.txt','ansi_test.txt'); //обратно конвертируем в ANSI
end;
Автор: Nasgul1987
Дата сообщения: 24.04.2012 15:58
Скажите пожалуйста как заблокировать закрытие окна (или формы) через alt + F4
Автор: dinazav
Дата сообщения: 24.04.2012 19:14
Нашел решение своего вопроса таким образом:

Сделал маленький ехе на delphi (далее "утилитка"). "Утилитка" проверяет вышеописанные текстовый unicode файл (читает строки, анализирует и т.п.) и выдает вердикт в виде маленького текстового ANSI файла (далее "файлик"). Задача инсталятора считать результат из "файлика", что не представляет уже труда. Однако возникли следующие вопросы:

Можно ли "утилитку" включить в тело инстала?

Хотелось бы чтобы примерно так работало: перед тем как устанавливать основной пакет файлов, инстал сперва распаковывает "утилитку" в темп папку, запускает и ждет результат. Далее считывает вердикт с "файлика" и делает вывод устанавливать основной пакет файлов или выдать сообщение, мол "сорри, сегодня вы пролетаете". Естественно "файлик" и "утилитка" будут удалятся перед установкой основного пакета файлов в случае положительного вердикта, либо перед выдачей отрицательного сообщения пользователю в случае отрицательного вердикта.

Заранее прошу прощения, если слишком сложно или непонятно все описал.
Автор: TaTTDoGG
Дата сообщения: 25.04.2012 00:22
dinazav,
а почему бы не написать на делфи библиотеку и не подрубить её в проект? зачем exe?
Автор: dinazav
Дата сообщения: 25.04.2012 01:24
TaTTDoGG
Во блин, точно, ну я и чайник!)))))

Спасибки.
Автор: dinazav
Дата сообщения: 25.04.2012 14:33
Ура, все получилось. Были нюансы с передачей строки-имени файла в качестве параметра функции, зашитой в DLL. И еще. В делфи перед компиляцией библиотеки определил мою функцию как stdcall.
Вобщем все победил и все работает как нужно.
Спасибо всем, кто ответили на мои посты.
Автор: sergey3695
Дата сообщения: 25.04.2012 17:07

Цитата:
Скажите пожалуйста как заблокировать закрытие окна (или формы) через alt + F4


Код: // Убираем возможность выхода при нажатие "ALT + F4"
function GetClassLong(Wnd: HWnd; Index: Integer): Longint; external 'GetClassLongA@user32.dll stdcall';
function SetClassLong(Wnd: HWnd; Index: Integer; NewLong: Longint): Longint; external 'SetClassLongA@user32.dll stdcall';

procedure Close;
begin
SetClassLong(Wizardform.Handle, -26, GetClassLong(Wizardform.Handle, -26) or $200);
end;
Автор: Sergey_Demchuk
Дата сообщения: 26.04.2012 00:26
Подскажите, почему при использовании botva2.dll

with WizardForm.DirBrowseButton do begin
if hBtnDb=0 then hBtnDb:=BtnCreate(WizardForm.SelectDirPage.Handle,Left-ScaleX(8),Top-ScaleY(8),Width+ScaleX(16),Height+ScaleY(16),ExpandConstant('{tmp}\button.png'),18,False);

по вертиикали отнимать 8: Top-ScaleY(8), иначе кнопка полчается смещенной по вертикали относительно DirEditу которой Top такой же как и у кнопки DirBrowseButton
Автор: Nasgul1987
Дата сообщения: 26.04.2012 00:51
sergey3695
спасибо тебе большое! )
Автор: YURSHAT
Дата сообщения: 26.04.2012 04:24
Sergey_Demchuk, прочтите внимательно комментарии к параметрам функции BtnCreate. Обратите внимание на параметр ShadowWidth.
Автор: Sergey_Demchuk
Дата сообщения: 26.04.2012 15:09

Цитата:
Sergey_Demchuk, прочтите внимательно комментарии к параметрам функции BtnCreate. Обратите внимание на параметр ShadowWidth.

Поэкспериментировал но толку не добился. По идее, для кнопка
BtnCreate(WizardForm.SelectDirPage.Handle,Left,ScaleY(175),Width+ScaleX(16),Height+ScaleY(16),ExpandConstant('{tmp}\button.png'),0,False);
должна быть вровень с DirEdit.Top:=ScaleY(175) по высоте, но на деле этого не происходит и она получается заметно выше
Автор: MOD_TEC
Дата сообщения: 26.04.2012 18:14
YURSHAT как скрыть либы

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


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