PDA

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


Страниц : 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

Serega
14-06-2009, 01:11
Хотелось бы вставить картинку вместо надписи »
Прикрепил пример, с библиотекой.

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;

Serega
15-06-2009, 15:38
запускаю родной инсталлятор 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=

semiono
15-06-2009, 22:19
Помогите с кодом в 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, так как это известно только инсталлеру. Сохранять скрипт в папке программы, тоже не хорошо, так как его тогда надо будет удалять оттуда каким-то образом. А оставлять темп-файлы я не люблю.

Serega
16-06-2009, 17:12
хочу после работы секции [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;

Berline
17-06-2009, 13:15
Вопрос: страница выбора компонентов - сперва комбо список - где 3 типа установки фул кастом компакт - ниже компоненты, отмечаем нужные галочками
Можно ли с этой страницы в принципе убрать комбо бокс с выбором типа установки и оставить только выбор самих компонентов?

Serega
17-06-2009, 21:55
убрать комбо бокс с выбором типа установки и оставить только выбор самих компонентов? »
[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;

Serega
17-06-2009, 23:49
Здравствуйте, обновил программу Converter (http://forum.oszone.net/post-1088238-581.html) до версии 0.1.2.
Корректно читаются и конвертируются из HEX данных в читаемый вид, значения ключей REG_EXPAND_SZ (expandsz) и REG_MULTI_SZ (multisz).

Serega
18-06-2009, 12:55
плюс у меня они движутся как то рывками т.е не плавно всплывают »
Попробуйте, новый вариант, перезалил, ссылка в шапке темы или в моей подписи.
Изменил скорость движения всплывающего окна. Движется также, рывками?




© OSzone.net 2001-2012