Показать полную графическую версию : [архив] Inno Setup .:[все вопросы]:.
Хотелось бы вставить картинку вместо надписи »
Прикрепил пример, с библиотекой.
katok888
14-06-2009, 09:56
InnoUnpacker (http://narod.ru/disk/9670350000/InnoUnPacker.7z.html) одна из возможностей этой программы заключается в том, что можно просмотреть содержание CompiledCode.bin
ISTool 5.30 (http://dfn.dl.sourceforge.net/sourceforge/istool/istool-5.3.0.exe) и Русификатор (http://stashbox.org/86697/istool-ru.rar)
чей-то бот
14-06-2009, 17:34
Вроде вот dll-ка (можете переименовать на unpack.dll, если очень надо) - http://narod.ru/disk/9755536000/arc.dll.html »
дллка хорошая,в особенности порадовалочто можно перетаскивать окно и сворачива,но вот напрягает то что слишком много места в прогрессбаре отводится для распаковки файлов из инсталла (порою их в него вообще не добавляю) :mellow: , и нет поддержки юникод-версии инно. можно как-нибудь попросить автора поправить?
BlackSelf
14-06-2009, 18:36
чей-то бот, пиши z1oyded, но исходники мне он не дал да и что-то править ради других он тоже вряд ли будет.
Вот ещё dll-ка со скриптом для распаковки freearc-архивов. Автор Bulat_Ziganshin. Скачать (http://www.haskell.org/bz/FreeArc4InnoSetup.zip)
чей-то бот
14-06-2009, 18:41
BlackSelf, дай плиз контакты его
BlackSelf
14-06-2009, 18:44
Вот лс на т.ру. (http://torrents.ru/forum/privmsg.php?mode=post&u=236428)
p3rf3ct1c
14-06-2009, 23:21
Люди а как убрать надписи отмеченные красным?
http://pic.ipicture.ru/uploads/090614/SY2WIW7unx.png
http://pic.ipicture.ru/uploads/090614/R5M681GUm4.png
Raf-9600
15-06-2009, 12:33
p3rf3ct1c, добавь в скрипт:
[Messages]
WelcomeLabel1=
WelcomeLabel2=
ClickNext=
FinishedHeadingLabel=
FinishedLabelNoIcons=
ClickFinish=
volk1234
15-06-2009, 12:48
Подскажет ли кто, как расшифровать на язык cmd следущие строки:
Source: "{sys}\msvcr71.dll"; DestDir: "{sys}"; MinVersion: 4.1,5.0.2195; Flags: uninsneveruninstall onlyifdoesntexist
Source: "{cf}\prog1\prog1.dll"; DestDir: "{cf}\prog1"; MinVersion: 4.1,5.0.2195; Flags: regserver sharedfile
если запускаю родной инсталлятор Inno - библиотеки регистрируются и работают. Сделал свой инсталятор, не регистрируются
библиотеки в коммандной строке.
Строка (во всех вариациях, с кавычками, без кавычек, из бат файла, из коммандной строки)
regsrv32 prog1.dll
вызывает ошибку
---------------------------
RegSvr32
---------------------------
Ошибка при вызове LoadLibrary("G:\CREATION\prog1\beta.view\musor\temp\prog1.dll") - Не найдена указанная процедура.
---------------------------
ОК
---------------------------
Посмотрел DependencyWallker - нехватает msjava.dll (хотя ее и в Inno установке нет) подложил и ее - без толку, ругается уже на точку входа.
Как вообще расшифровывается regserver sharedfile
Что эта комманда делает, я в справке почитал.
Нечто вроде regsvr32 (вызов DllRegisterServer) и запись библиотеки в раздел реестра SharedFiles.
Кто знает подробнее??
Raf-9600
15-06-2009, 13:38
Ктонить может доработать этот код, так чтобы для слайд-шоу можно было использовать JPG картинки, и само слайд-шоу показывало их не по порядку, а рандомно?
#define TIME_FOR_VIEW 5
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=none
SolidCompression=yes
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Files]
Source: compiler:get_hw_caps.dll; DestDir: {tmp}; Flags: dontcopy
Source: compiler:InnoCallback.dll; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_1.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_2.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_3.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_4.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_5.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_6.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_7.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_8.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_9.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
Source: F:\ISSkin\TR\Slide_Img\Image_10.bmp; DestDir: {tmp}; Flags: ignoreversion dontcopy noencryption nocompression solidbreak
[_Code]
var
TimerID: LongWord;
currTime: Integer;
SplashImage: TBitmapImage;
type
TProc = procedure(HandleW, msg, idEvent, TimeSys: 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);
begin
currTime := currTime + 1;
case currTime of
{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_2.bmp')) end;
2*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_3.bmp')) end;
3*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_4.bmp')) end;
4*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_5.bmp')) end;
5*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_6.bmp')) end;
6*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_7.bmp')) end;
7*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_8.bmp')) end;
8*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_9.bmp')) end;
9*{#TIME_FOR_VIEW}: begin SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_10.bmp'))end;
end;
if CurrTime = 9*{#TIME_FOR_VIEW} then CurrTime := -1;
end;
procedure InitializeWizard;
begin
ExtractTemporaryFile('Image_1.bmp');
ExtractTemporaryFile('Image_2.bmp');
ExtractTemporaryFile('Image_3.bmp');
ExtractTemporaryFile('Image_4.bmp');
ExtractTemporaryFile('Image_5.bmp');
ExtractTemporaryFile('Image_6.bmp');
ExtractTemporaryFile('Image_7.bmp');
ExtractTemporaryFile('Image_8.bmp');
ExtractTemporaryFile('Image_9.bmp');
ExtractTemporaryFile('Image_10.bmp');
currTime := 0;
WizardForm.ProgressGauge.Parent := WizardForm;
WizardForm.ProgressGauge.Top := WizardForm.CancelButton.Top + ScaleY(12);
WizardForm.ProgressGauge.Left := ScaleX(10);
WizardForm.ProgressGauge.Width := WizardForm.MainPanel.Width - ScaleX(20);
WizardForm.ProgressGauge.Height := 16;
WizardForm.ProgressGauge.Hide;
WizardForm.FileNameLabel.Parent := WizardForm;
WizardForm.FileNameLabel.Top := WizardForm.ProgressGauge.Top - ScaleY(18);
WizardForm.FileNameLabel.Left := ScaleX(10);
WizardForm.FileNameLabel.Width := ScaleX(397);
WizardForm.FileNameLabel.Hide;
SplashImage := TBitmapImage.Create(WizardForm);
SplashImage.Top := 0;
SplashImage.Left := 0;
SplashImage.Width := WizardForm.MainPanel.Width;
SplashImage.Height := WizardForm.Bevel.Top;
SplashImage.Parent := WizardForm.InnerPage;
SplashImage.Stretch := True;
SplashImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image_1.bmp'));
SplashImage.Hide;
end;
procedure CurPageChanged(CurPageID: Integer);
var
pfunc: LongWord;
begin
if (CurPageID = wpInstalling) then
begin
pfunc := WrapTimerProc(@OnTimer, 5);
TimerID := SetTimer(0, 0, 1000, pfunc);
WizardForm.PageNameLabel.Visible:=false
WizardForm.PageDescriptionLabel.Visible:=false
WizardForm.InnerNotebook.Hide;
WizardForm.Bevel1.Hide;
WizardForm.MainPanel.Hide;
WizardForm.PageNameLabel.Hide;
WizardForm.PageDescriptionLabel.Hide;
WizardForm.ProgressGauge.Show;
WizardForm.FileNameLabel.Show;
SplashImage.Show;
WizardForm.CancelButton.Enabled :=True
WizardForm.CancelButton.Top := WizardForm.Bevel.Top + ScaleY(100)
end
else
begin
WizardForm.ProgressGauge.Hide;
SplashImage.Hide;
WizardForm.FileNameLabel.Hide;
if (CurPageID > wpInstalling) and (CurPageID < wpFinished) then
begin
WizardForm.InnerNotebook.Show;
WizardForm.Bevel1.Show;
WizardForm.MainPanel.Show;
WizardForm.PageNameLabel.Show;
WizardForm.PageDescriptionLabel.Show;
end
If CurPageID=wpFinished then
end;
end;
procedure DeInitializeSetup();
begin
KillTimer(0, TimerID);
end;
запускаю родной инсталлятор Inno - библиотеки регистрируются и работают. Сделал свой инсталятор, не регистрируются библиотеки в коммандной строке »
вызывает ошибку »
А скрипт распаковывали Unpaker'ом?
Если да, то попробуйте InnoUnPacker (http://narod.ru/disk/9670350000/InnoUnPacker.7z.html) 2.6b3 от valeron87 (http://forum.ru-board.com/profile.cgi?action=show&member=valeron87), Зеркало (http://ifolder.ru/6192841)
По-моему, он более правильно показывает флаги и файлы в инсталляторе, в отличии от Unpaker'а, который иногда ошибается и корёжит файлы, хотя это бывает редко, но всё же.
Как вообще расшифровывается regserver sharedfile »
regserver
Регистрация OLE-сервера (он же ActiveX control). Если этот флаг установлен, инсталлятор найдет и выполнит DllRegisterServer для DLL/OCX. Деинсталлятор вызовет DllUnregisterServer. При использовании в комбинации с флагом sharedfile DLL/OCX будет только дерегистрирована, когда связывающий счетчик достигнет нуля.
Нечто вроде regsvr32 (вызов DllRegisterServer) и запись библиотеки в раздел реестра SharedFiles. »
всё правильно, т.е. обычная регистрация библиотеки в системе.
P.S.
InnoUnPacker, я думаю нужно добавить в шапку и так же:
ISTool 5.30 и Русификатор »
p3rf3ct1c
15-06-2009, 16:45
Raf-9600, Спасибо, в начале убралось но в завершении установки осталось вот это
http://pic.ipicture.ru/uploads/090615/Ggeq2UW7ma.jpg
И можешь пожалуйста подсказать как сверху убрать надписи на каждой странице?
http://pic.ipicture.ru/uploads/090615/FW31IBWKog.jpg
Raf-9600
15-06-2009, 16:55
в начале убралось но в завершении установки осталось вот это »
Заходишь в папку с установленным Inno Setup\Languages\Russian.isl его открываешь блокнотом, и ищешь нужную для удаления надпись, когда находишь, то "случай" при котором оно отображаеться, добавляешь в [Messages], в своем скрипте.
И можешь пожалуйста подсказать как сверху убрать надписи на каждой странице? »
Конкретного ответа даль не могу, но вот скрипт который мне дал serg_aka_lain, для SmallImage размерами 497х58, с удалением надписей.
[Сode]
procedure InitializeWizard();
begin
with WizardForm do begin
with MainPanel do
Height := Height - 1;
with WizardSmallBitmapImage do begin
Left := 0;
Top := 0;
Height := 58; //Размер рисунка
Width := 497; //
end;
with PageNameLabel do begin
Width := Width - 497; //Поставьте здесь значения на 0, если хотите вернуть текст
Left := Left + 497; //
end;
with PageDescriptionLabel do begin
Width := Width - 497; //Поставьте здесь значения на 0, если хотите вернуть текст
Left := Left + 497; //
end;
end;
end;
p3rf3ct1c
15-06-2009, 17:44
Raf-9600, Спасибо!
Надписи сверху я убрал другим способом, добавил в скрипт вот это:
[Messages]
WizardSelectDir=
SelectDirDesc=
WizardSelectProgramGroup=
SelectStartMenuFolderDesc=
WizardReady=
ReadyLabel1=
WizardInstalling=
InstallingLabel=
Помогите с кодом в InnoSetup!
Идея такова, хочу после работы секции [Run] выполнить экспорт некоторых параметров из реестра,
чтобы сразу получить файл {app}\BackUpApp.reg - что весьма удобно для пользователя должно быть!
Вообще это возможно - всмысле секция [C0de] до или после [Run] выполняется? Или можно указать?
Если есть такая возможность, пожалуста покажите мне пример кода, нужно зделать следующее...
Каким-то образом создать reg-файл, в который нужно записать некоторые value из реестра,
которые известны с самого начала установки.
Например,
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Miranda]
"Install_Dir"="C:\\~\\Apps\\Miranda"
Но проблемма в том что не все аргументы заранее известны, так как после выполнения [Run]
некоторые ValueData: ""; будут содержать случайные записи.
Тут нужены наверное RegRead/RegWrite функции и с записью в файл.
Помогите, я не сумею код составить!
Вот это сразу же придётся отбросить, по той причине, что нам не нужен весь ключ, а только выборочные value
[Run]
Filename: "{tmp}\Setup.exe"; Flags: hidewizard
Filename: "reg.exe"; Parameters: "export ""HKLM\Software\Native Instruments\AkoustikPiano"" {sys}\Protoxp\AkoustikPiano\AkoustikPiano.reg"; Check: not IsWin64; Flags: hidewizard runhidden
Filename: "reg.exe"; Parameters: "export ""HKLM\Software\Native Instruments\AkoustikPiano"" {reg:HKLM\Software\VST,VSTPluginsPath|{sys}\Plugins}\AkoustikPiano\AkoustikPiano.reg"; Check: not IsWin64; Flags: hidewizard runhidden
Filename: "reg.exe"; Parameters: "export ""HKLM\Software\Wow6432Node\Native Instruments\AkoustikPiano"" {syswow64}\Protoxp\AkoustikPiano\AkoustikPiano.reg"; Check: IsWin64; Flags: hidewizard runhidden
Filename: "reg.exe"; Parameters: "export ""HKLM\Software\Wow6432Node\Native Instruments\AkoustikPiano"" {reg:HKLM32\Software\VST,VSTPluginsPath|{syswow64}\Plugins}\AkoustikPiano\AkoustikPiano.reg"; Check: IsWin64; Flags: hidewizard runhidden
хотя с команд строкой идея мне очень нравится
Если использовать автоит из временной папки, то ему тогда сложно указать куда сохранить regfile, так как это известно только инсталлеру. Сохранять скрипт в папке программы, тоже не хорошо, так как его тогда надо будет удалять оттуда каким-то образом. А оставлять темп-файлы я не люблю.
хочу после работы секции [Run] выполнить экспорт некоторых параметров из реестра »
Я думаю можно таким образом:
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Code]
// считываем данные из реестра
procedure CurStepChanged(CurStep: TSetupStep);
var
str: string;
begin
if CurStep = ssDone then begin
if RegValueExists(HKEY_LOCAL_MACHINE, 'SOFTWARE\Miranda', 'Install_Dir') = True then begin
if RegQueryStringValue(HKEY_LOCAL_MACHINE, 'SOFTWARE\Miranda', 'Install_Dir', str) = True then begin
str:= 'Windows Registry Editor Version 5.00' + #13#13 +
'[HKEY_LOCAL_MACHINE\SOFTWARE\My Program\System]' + #13 +
'"Path"=' + AddQuotes(str) + #13;
// создаём файл BackUpApp.reg
SaveStringToFile(ExpandConstant('{app}\BackUpApp.reg'), str, False);
end;
end;
end;
end;
Вопрос: страница выбора компонентов - сперва комбо список - где 3 типа установки фул кастом компакт - ниже компоненты, отмечаем нужные галочками
Можно ли с этой страницы в принципе убрать комбо бокс с выбором типа установки и оставить только выбор самих компонентов?
убрать комбо бокс с выбором типа установки и оставить только выбор самих компонентов? »
[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
;ComponentsListTVStyle=True
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
[Types]
Name: full; Description: Полная установка
Name: custom; Description: Выборочная установка; Flags: iscustom
[Components]
Name: a; Description: Моя программа™; Types: full custom
Name: a\a; Description: Руководство пользователя; Types: full
Name: a\a\a; Description: Русский; Flags: exclusive
Name: a\a\b; Description: English; Flags: exclusive
Name: a\b; Description: Справка; Types: full
[Files]
Source: compiler:Examples\MyProg.exe; DestDir: {app}; Components: a
Source: compiler:Examples\Readme-ru.txt; DestDir: {app}; Components: a\a\a
Source: compiler:Examples\Readme-en.txt; DestDir: {app}; Components: a\a\b
Source: compiler:Examples\MyProg.chm; DestDir: {app}; Components: a\b
[Code]
procedure InitializeWizard();
begin
with WizardForm do begin
TYPESCOMBO.Hide;
ComponentsList.Height:= 155;
ComponentsList.Top:= 50;
end;
end;
Здравствуйте, обновил программу Converter (http://forum.oszone.net/post-1088238-581.html) до версии 0.1.2.
Корректно читаются и конвертируются из HEX данных в читаемый вид, значения ключей REG_EXPAND_SZ (expandsz) и REG_MULTI_SZ (multisz).
плюс у меня они движутся как то рывками т.е не плавно всплывают »
Попробуйте, новый вариант, перезалил, ссылка в шапке темы или в моей подписи.
Изменил скорость движения всплывающего окна. Движется также, рывками?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.