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

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

Автор: SotM
Дата сообщения: 17.09.2008 09:01
Raf_SE
Ща глянул в справку, есть функция CustomMessage. Можешь в коде попробовать использовать ее. В качестве параметра передавай имя сообщения прописанного в секции CustomMessages.


Цитата:
Ашибки вродь проверял через Word, он не жаловался...

Ща взял строку на выбор: "//Создаеться вертуальный GroupBox" и Word подчеркнул первые два слова.
Слово "создается" отвечает на вопрос "что делает" и поэтому пишется без мягкого знака. А слово "виртуальный", ну он всегда был "виртуальным".
Автор: Raf_SE
Дата сообщения: 17.09.2008 11:50
SotM

Цитата:
Ща глянул в справку, есть функция CustomMessage.

Да я пробывл использовать эту функцию но в коде она не работает... В принципе, мне ктиото писал решение аналогичной задачи для другого кода, но учитывая мои (нулевые) знания в Паскале, я понятия не имею как этот метод можно поюзать в данной ситуации.
[more=Читать дальше..]procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
var
Res: Integer;
begin
case CurUninstallStep of
usPostUninstall:
begin
if DirExists(ExpandConstant('{app}')) then
if ExpandConstant('{language}') = 'ua' then
case MsgBox('Папка "' + ExpandConstant('{app}') + '" не порожня.'#13#13 +
'"Так" – повне видалення всіх файлів у папці, включаючи саму папку.' #13#13 +
'"Ні" – відкрити папку в провіднику, щоб вручну видалити файли.'#13#13 +
'"Скасувати" – нічого не робити, видалити папку пізніше самостійно.', mbInformation, MB_YESNOCANCEL) of

IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Папка не видалена.' #13#13 'Папка або один з файлів у ній задіяні іншою програмою.', mbError, MB_OK);

IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Помилка відкриття.' #13#13 'Папка не знайдена.', mbError, MB_OK);

IDCANCEL:;
end
else
if ExpandConstant('{language}') = 'ru' then
case MsgBox('Папка "' + ExpandConstant('{app}') + '" не пуста.'#13#13 +
'"Да" – полное удаление всех файлов в папке, включая саму папку.' #13#13 +
'"Нет" – открыть папку в проводнике, чтобы вручную удалить файлы.'#13#13 +
'"Отмена" – ничего не делать, удалить папку позже самостоятельно.', mbInformation, MB_YESNOCANCEL) of

IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Папка не удалена.' #13#13 'Папка или один из файлов в ней задействованы другим приложением.', mbError, MB_OK);

IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Ошибка открытия.' #13#13 'Папка не найдена.', mbError, MB_OK);

IDCANCEL:;
end
else
case MsgBox('Directory "' + ExpandConstant('{app}') + '" is not empty.'#13#13 +
'"Yes" to delete all of the files in the directory, including the directory itself.' #13#13 +
'"No" to open the directory with explorer to delete the files manually.'#13#13 +
'"Cancel" to do nothing and delete the directory later manually.', mbInformation, MB_YESNOCANCEL) of

IDYES:
if not DelTree(ExpandConstant('{app}'), True, True, True) then
MsgBox('Directory is not deleted.' #13#13 'Directory or one of the files are used by the other application.', mbError, MB_OK);

IDNO:
if not ShellExec('open', ExpandConstant('{app}'), '', '', SW_SHOWMAXIMIZED, ewNoWait, Res) then
MsgBox('Error opening the directory.' #13#13 'Directory is not found.', mbError, MB_OK);

IDCANCEL:;
end
end
end
end;

function NextButtonClick(CurPage: Integer): Boolean;
begin
Result := True;
if CurPage = wpSelectDir then
if DirExists( ExpandConstant('{app}') ) then
begin
MsgBox(ExpandConstant('{cm:InstallationIsNotEnabled}'), mbError, mb_Ok);
Result := False;
end
end;
[/more]


Цитата:
Создаеться вертуальный GroupBox

Та ет вобще фигня, перевод с китайского... На это не обращай внимания. Главное что все что будет написано в интерфейсе инсталлятора, проверен через Word.

P.S.
Мож я неправельно юзал "CustomMessage"? Я просто вместо каждой строки текста боковушки, вставлял чёнить типа "cm:Fargus"
Автор: Artem_Butenko
Дата сообщения: 17.09.2008 13:13
Victor_Dobrov - мне очень нравится Ваш вариант озвучки действий инсталлятора используемый в Coronа Skin. Однако реализовать подобное у меня пока не получается (не хватает знаний). Вот и прошу у Вас помощи. Если у Вас есть время и желание, пожалуйста помогите скриптом. А "потрошить" Ваш замечательный Coronа Skin, у меня просто не поднимается рука!
Автор: htuos
Дата сообщения: 17.09.2008 13:41
Raf_SE
попробуй так [more][Setup]
AppName=Application
AppVerName=111
DefaultDirName={pf}\Application

[Components]
Name: "Text"; Description: {cm:Text}; Types: full compact custom; Flags: fixed
Name: "Text\English"; Description: {cm:Text_English}; Flags: exclusive
Name: "Text\Russian"; Description: {cm:Text_Russian}; Flags: exclusive;

Name: "Voice"; Description: Озвучка:; Types: "full";
Name: "Voice\English"; Description: Английская; Flags: exclusive
Name: "Voice\Russian"; Description: Русская от:; Flags: exclusive
Name: "Voice\Russian\Fargus"; Description: Фаргус; Flags: exclusive;
Name: "Voice\Russian\8bit"; Description: 8bit; Flags: exclusive
Name: "Voice\Russian\RuProgect"; Description: Русский проект; Flags: exclusive

Name: "Video"; Description: Видео; Types: "full";
Name: "Video\English"; Description: Английское; Flags: exclusive
Name: "Video\Russian"; Description: Русское от:; Flags: exclusive
Name: "Video\Russian\Fargus"; Description: Фаргус; Flags: exclusive
Name: "Video\Russian\8bit"; Description: 8bit; Flags: exclusive;
Name: "Video\Russian\RuProgect"; Description: Русский проект; Flags: exclusive
Name: "Video\Intro"; Description: Intro ролик Blizzard; Types: "full";

Name: "Version"; Description: Версия; Types: full compact custom; Flags: fixed
Name: "Version\107"; Description: 1.07; Flags: exclusive
Name: "Version\108"; Description: 1.08; Flags: exclusive
Name: "Version\109d"; Description: 1.09d; Flags: exclusive
Name: "Version\110"; Description: 1.10; Flags: exclusive
Name: "Version\111b"; Description: 1.11b; Flags: exclusive
Name: "Version\112a"; Description: 1.12a; Flags: exclusive; Types: full

Name: "NoCd"; Description: NO-CD; Types: "full";
Name: "Music"; Description: Музыка; Types: "full";


[Files]
Source: "descctrl.dll"; Flags: dontcopy

[Languages]
Name: "en"; MessagesFile: "compiler:Default.isl"
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl"

[CustomMessages]
ru.Text=Текст:
ru.Text_English=Английский
ru.Text_Russian=Русский
en.Text=Text:
en.Text_English=English
en.Text_Russian=Russian

ru.m1=Выберите язЫк внутриигрового текста;
ru.m2=АнглийскИй, оРигинальный текст;
ru.m3=РуССкий текст, оСНовывается на переводе фирмы "Фаргус";
en.m1=Select text language;
en.m2=English, original text;
en.m3=Russian text, bla-bla-bla "Fargus";

[Code_]
//_-=Код Боковушки с описанием компонентов=-_
function enabledesc(ComponentsListHandle: HWND; DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall';
//ComponentsListHandle Боковой КомпонентБокс
//DescLabelHandle Боковой текст
//DescStrings Строки описания разделяються точкой с запятоый ";".

function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall';

var
Info: TNewStaticText;
InfoCaption: TNewStaticText;
InfoPanel: TPanel;

procedure DeinitializeSetup();
begin
//Контроль описания
disabledesc();
end;

procedure InitializeWizard();
begin
// Приспособьте размер списка Компонентов
WizardForm.TYPESCOMBO.Visible:= false;
WizardForm.ComponentsList.Height := WizardForm.ComponentsList.Height + WizardForm.ComponentsList.Top - WizardForm.TYPESCOMBO.Top;
WizardForm.ComponentsList.Top := WizardForm.TYPESCOMBO.Top;
WizardForm.ComponentsList.Width := ScaleX(200);
//Создаеться вертуальный GroupBox (боковушка), ибо Inno Setup неспособен создать реальный.
InfoPanel := TPanel.Create(WizardForm);
InfoPanel.Parent := WizardForm.SelectComponentsPage;
InfoPanel.Caption := '';
InfoPanel.Top := WizardForm.ComponentsList.Top;
InfoPanel.Left := ScaleX(216);
InfoPanel.Width := ScaleX(200);
InfoPanel.Height := WizardForm.ComponentsList.Height;
InfoPanel.BevelInner := bvRaised;
InfoPanel.BevelOuter := bvLowered;
InfoCaption := TNewStaticText.Create(WizardForm);
InfoCaption.Parent := WizardForm.SelectComponentsPage;
InfoCaption.Caption := 'Описание';
InfoCaption.Left := ScaleX(224);
InfoCaption.Top := InfoPanel.Top - ScaleY(5);
InfoCaption.Font.Color := clActiveCaption;
// Параметры текста
Info := TNewStaticText.Create(WizardForm);
Info.Parent := InfoPanel;
Info.AutoSize := False;
Info.Left := ScaleX(6);
Info.Width := ScaleX(188);
Info.Top := ScaleY(12);
Info.Height := WizardForm.ComponentsList.Height - ScaleY(18);
Info.Caption := 'Переместите ваш указатель мыши на компоненты чтобы увидеть их описание.';
Info.WordWrap := true;
//Впишыте описание компонентов
enabledesc(WizardForm.ComponentsList.Handle,Info.Handle,

//'Выберите язик внутриигрового текста;'+ //Text
ExpandConstant('{cm:m1}')+
//'Английскай, огигинальный текст;'+ // Text\English
ExpandConstant('{cm:m2}')+
//'Руссский текст, остновываеться на переводе фирмы Фаргус;'+ // Text\Russian
ExpandConstant('{cm:m3}')+

'Озвучка внутриигровых монологов;'+ // Voice
'Оригинальная, английская озвучка;'+ // Voice\English
'Выберите локализатора;'+ // Voice\Russian
'Пофесиональная озвучка от фирмы "Фаргус";'+ // Voice\Russian\Fargus
'Качевственная озвучка от фирмы "8bit";'+ // Voice\Russian\8bit
'Качевственная озвучка от фирмы "Русский Проект";'+ // Voice\Russian\RuProgect
'Озвучка внутриигрового видео;'+ // Video
'Оригинальная, английская озвучка;'+ // Video\English
'Выберите локализатора;'+ // Video\Russian
'Любительская, одноголосая озвучка;'+ // Video\Russian\Fargus
'Професиональная, дублированная озвучка;'+ // Video\Russian\8bit
'Качевственная, многоголосая закадровая озвучка;'+ // Video\Russian\RuProgect
'Начальные ролики с логотипами Blizzard Etherteimant и Blizzard North;'+ //Video\Intro
'Выберите версию игры;'+ // Version
'Оригинальная верся игры;'+ // Version\107
'Дата выпуска: 28.06.2001;'+ // Version\108
'Дата выпуска: 05.12.2001;'+ // Version\109d
'Дата выпуска: 28.10.2003;'+ // Version\110
'Дата выпуска: 13.09.2005;'+ // Version\111b
'Дата выпуска: 17.06.2008;'+ // Version\112a
'Установить Crack для возможности играть без диска;'+ // NoCd
'Внутриигровая музыка;' // Sound
);
end;[/more] подправил кое-чего

ЗЫ с русским у тебя правда очень плохо, и не только в комментариях. я понимаю, не преподают и все такое. тогда найди человека, который тебе это поможет грамотно написать
Автор: SotM
Дата сообщения: 17.09.2008 14:59
htuos
А чем отличается использование CustomMessage( 'cm1' ) от ExpandConstant( '{cm:cm1}' )?
Автор: htuos
Дата сообщения: 17.09.2008 15:08
SotM

Цитата:
А чем отличается использование CustomMessage( 'cm1' ) от ExpandConstant( '{cm:cm1}' )?
в данном случае ничем, обе функции вернут одинаковое значение. я так понял у него вообще ничего не получилось, поэтому привел пример кода, а он пусть пишет как ему удобно будет
Автор: Raf_SE
Дата сообщения: 17.09.2008 15:47
Да вот, протестировал с "ExpandConstant('{cm:m2}')" всё получилось! Отдельное спасибо за исправление граматических ошибок.


Цитата:
ничего не получилось

Я в Паскале 0. Какие ещё нужны комментарии?
Автор: PunisherVIP
Дата сообщения: 17.09.2008 16:43
Всем доброго времени суток. А можно сделать так, чтобы при выборе языка загружался определенный рег файл. Тоесть при установке выбираем язык русский, загружается russian.reg, выбираем английский, загружается english.reg?
Или же после установки выдавал запрос, какой язык приложения выбрать и при выборе разных языков, загружались разные .reg файлы.
Скрипт тут: Inno Script
Автор: SotM
Дата сообщения: 17.09.2008 16:45
PunisherVIP

Цитата:
А можно сделать так

Можно, берем всяко разно из шапки и сами смотрим. Затем еще листаем назад несколько страниц, думаем, и находим решение этой задачи.

Автор: PunisherVIP
Дата сообщения: 17.09.2008 16:57
Уж очень тут много страниц...можно по конкретнее, желательно чтобы был 2 пункт...
Автор: Raf_SE
Дата сообщения: 17.09.2008 17:37
PunisherVIP
Ну чересчур уш нюбский вопрос. Прочитай русскоязычную справку, по поводу секции [Components] и [Run]

А если ты имеешь введу установку файлов в зависимости от языка инсталлятора, тогда к файлу припишы "Languages:"
Пример:
Source: L:\Games\Earth 2160 EN\ALL\Kill eng.ini; DestDir: {app}; DestName: Kill.ini; Languages: en
Source: L:\Games\Earth 2160 EN\ALL\Kill rus.ini; DestDir: {app}; DestName: Kill.ini; Languages: ru
Source: L:\Games\Earth 2160 EN\ALL\Kill ukr.ini; DestDir: {app}; DestName: Kill.ini; Languages: ua
Автор: htuos
Дата сообщения: 17.09.2008 17:54
сорри за очередную рекламу, но
PunisherVIP
под вальвовские игры вот такой визард писался и выбор языка там есть
Автор: Dermuin
Дата сообщения: 17.09.2008 19:09
Вос создал скрипт но не импортируются параметры реестра, как можно исправить, а если вносить через рег файл то всё ок.

Скрипт
[more][Setup]
AppName=Paint.NET
AppVerName=Paint.NET 3.36
AppPublisherURL=http://www.getpaint.net/
AppSupportURL=http://www.getpaint.net/
AppUpdatesURL=http://www.getpaint.net/
DefaultDirName={pf}\Paint.NET
DefaultGroupName=Paint.NET
LicenseFile=.\Files\License.txt
OutputDir=.\
OutputBaseFilename=Setup
Compression=lzma/ultra
SolidCompression=true
InternalCompressLevel=ultra
CompressionThreads=2
VersionInfoVersion=3.36.0.0
VersionInfoTextVersion=3.36.0.0
AppVersion=3.36
UsePreviousAppDir=false
UsePreviousGroup=false
UninstallDisplayName=Paint.NET 3.36
VersionInfoDescription=Image and photo editing software written in C#.
VersionInfoCompany=dotPDN LLC
AppPublisher=dotPDN LLC
VersionInfoCopyright=Copyright © 2008 dotPDN LLC, Rick Brewster, Tom Jackson, and past contributors. Portions Copyright © Microsoft Corporation. All Rights Reserved.
AppCopyright=Copyright © 2008 dotPDN LLC, Rick Brewster, Tom Jackson, and past contributors. Portions Copyright © Microsoft Corporation. All Rights Reserved.

[Languages]
Name: russian; MessagesFile: compiler:Default.isl
Name: english; MessagesFile: compiler:Languages\English.isl

[Tasks]
Name: desktopicon; Description: {cm:CreateDesktopIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked
Name: quicklaunchicon; Description: {cm:CreateQuickLaunchIcon}; GroupDescription: {cm:AdditionalIcons}; Flags: unchecked

[Files]
Source: .\Files\PaintDotNet.exe; DestDir: {app}; Flags: ignoreversion
Source: .\Files\ICSharpCode.SharpZipLib.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\Interop.WIA.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\License.txt; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Base.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Core.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Data.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Effects.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.exe.config; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Resources.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.DE.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.ES.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.FR.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.it.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.JA.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.KO.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.PT-BR.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.RU.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.Strings.3.ZH-CN.resources; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.StylusReader.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PaintDotNet.SystemLayer.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PdnRepair.exe; DestDir: {app}; Flags: ignoreversion
Source: .\Files\PdnRepair.exe.config; DestDir: {app}; Flags: ignoreversion
Source: .\Files\SetupNgen.exe; DestDir: {app}; Flags: ignoreversion
Source: .\Files\SetupNgen.exe.config; DestDir: {app}; Flags: ignoreversion
Source: .\Files\ShellExtension_x64.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\ShellExtension_x86.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\Squish_x64.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\Squish_x86.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\Squish_x86_SSE2.dll; DestDir: {app}; Flags: ignoreversion
Source: .\Files\UpdateMonitor.exe; DestDir: {app}; Flags: ignoreversion
Source: .\Files\UpdateMonitor.exe.config; DestDir: {app}; Flags: ignoreversion
Source: .\Files\WiaProxy32.exe; DestDir: {app}; Flags: ignoreversion
Source: .\Files\WiaProxy32.exe.config; DestDir: {app}; Flags: ignoreversion
Source: .\Files\FileTypes\*; DestDir: {app}\FileTypes; Flags: ignoreversion recursesubdirs createallsubdirs
Source: .\Files\Resources\*; DestDir: {app}\Resources; Flags: ignoreversion recursesubdirs createallsubdirs
Source: .\System32\wiaaut.dll; DestDir: {sys}; Flags: ignoreversion

[Dirs]
Name: {app}\Effects

[Icons]
Name: {group}\Paint.NET; Filename: {app}\PaintDotNet.exe; WorkingDir: {app}; IconFilename: {app}\PaintDotNet.exe; IconIndex: 0
Name: {group}\{cm:UninstallProgram,Paint.NET}; Filename: {uninstallexe}; WorkingDir: {app}
Name: {commondesktop}\Paint.NET; Filename: {app}\PaintDotNet.exe; Tasks: desktopicon; WorkingDir: {app}; IconFilename: {app}\PaintDotNet.exe; IconIndex: 0
Name: {userappdata}\Microsoft\Internet Explorer\Quick Launch\Paint.NET; Filename: {app}\PaintDotNet.exe; Tasks: quicklaunchicon; WorkingDir: {app}; IconFilename: {app}\PaintDotNet.exe; IconIndex: 0

[Run]
Filename: {app}\PaintDotNet.exe; Description: {cm:LaunchProgram,Paint.NET}; Flags: nowait postinstall skipifsilent; WorkingDir: {app}

[Registry]
Root: HKLM; SubKey: SOFTWARE\Classes\.bmp\OpenWithProgids; ValueType: string; ValueName: Paint.NET.1; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\.jpe\OpenWithProgids; ValueType: string; ValueName: Paint.NET.1; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\.jpeg\OpenWithProgids; ValueType: string; ValueName: Paint.NET.1; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\.jpg\OpenWithProgids; ValueType: string; ValueName: Paint.NET.1; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\.png\OpenWithProgids; ValueType: string; ValueName: Paint.NET.1; Flags: uninsdeletevalue
Root: HKCR; SubKey: CLSID\{{D292F82A-50BE-4351-96CC-E86F3F8049DA}; ValueType: string; ValueData: Paint.NET Shell Extension; Flags: uninsdeletekey
Root: HKCR; SubKey: CLSID\{{D292F82A-50BE-4351-96CC-E86F3F8049DA}\InProcServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Flags: uninsdeletekey
Root: HKCR; SubKey: CLSID\{{D292F82A-50BE-4351-96CC-E86F3F8049DA}\InProcServer32; ValueType: string; ValueData: {app}\ShellExtension_x86.dll; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\jpegfile\shell\edit\command; ValueType: string; ValueData: "\""{app}\PaintDotNet.exe\"" \""%1\"""; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\Paint.Picture\shell\edit\command; ValueType: string; ValueData: "\""{app}\PaintDotNet.exe\"" \""%1\"""; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\pngfile\shell\edit\command; ValueType: string; ValueData: "\""{app}\PaintDotNet.exe\"" \""%1\"""; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\.pdn; ValueType: string; ValueData: Paint.NET.1; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\.pdn; ValueType: string; ValueName: PerceivedType; ValueData: Image; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\.pdn\OpenWithProgids; ValueType: string; ValueName: Paint.NET.1; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\.pdn\ShellEx\{{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}; ValueType: string; ValueData: {{D292F82A-50BE-4351-96CC-E86F3F8049DA}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\.tga; ValueType: string; ValueName: Content Type; ValueData: image/targa; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\.tga; ValueType: string; ValueName: PerceivedType; ValueData: Image; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\.tga; ValueType: string; ValueData: Paint.NET.1; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\.tga\OpenWithProgids; ValueType: string; ValueName: Paint.NET.1; Flags: uninsdeletevalue
Root: HKLM; SubKey: SOFTWARE\Classes\Paint.NET.1; ValueType: string; ValueData: Paint.NET Image; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\Paint.NET.1\shell\edit\command; ValueType: string; ValueName: ; ValueData: "\""{app}\PaintDotNet.exe\"" \""%1\"""; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\Paint.NET.1\shell\open\command; ValueType: string; ValueName: ; ValueData: "\""{app}\PaintDotNet.exe\"" \""%1\"""; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\Paint.NET.1\shell\print\command; ValueType: string; ValueName: ; ValueData: "\""{app}\PaintDotNet.exe\"" \""print:%1\"""; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\Paint.NET.ThumbExtract\CLSID; ValueType: string; ValueName: ; ValueData: {{D292F82A-50BE-4351-96CC-E86F3F8049DA}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\Paint.NET.ThumbExtract\CurVer; ValueType: string; ValueName: ; ValueData: Paint.NET.ThumbExtract.1; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\Paint.NET.ThumbExtract.1\CLSID; ValueType: string; ValueName: ; ValueData: {{D292F82A-50BE-4351-96CC-E86F3F8049DA}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls; ValueType: dword; ValueName: {sys}\wiaaut.dll; ValueData: $00000002; Flags: uninsdeletevalue
Root: HKCR; SubKey: Applications\PaintDotNet.exe\shell\open\command; ValueType: string; ValueData: "\""{app}\PaintDotNet.exe\"" \""%1\"""; Flags: uninsdeletevalue
Root: HKCU; SubKey: Software\Classes\Applications\PaintDotNet.exe\shell\open\command; ValueType: string; ValueData: "\""{app}\PaintDotNet.exe\"" \""%1\"""; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\PaintDotNet.exe; ValueType: string; ValueData: {app}\PaintDotNet.exe; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\PaintDotNet.exe; ValueType: string; ValueName: Path; ValueData: {app}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}; ValueType: string; ValueData: VideoPreview Class; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\InprocServer32; ValueType: string; ValueName: ; ValueData: {sys}\wiaaut.dll; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\InprocServer32; ValueType: string; ValueName: ThreadingModel; ValueData: Apartment; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\MiscStatus; ValueType: string; ValueName: ; ValueData: 0; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\MiscStatus\1; ValueType: string; ValueName: ; ValueData: 131473; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\ProgID; ValueType: string; ValueName: ; ValueData: WIA.VideoPreview.1; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\ToolboxBitmap32; ValueType: string; ValueName: ; ValueData: {sys}\wiaaut.dll, 101; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\TypeLib; ValueType: string; ValueName: ; ValueData: {{94A0E92D-43C0-494E-AC29-FD45948A5221}; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\Version; ValueType: string; ValueName: ; ValueData: 1.0; Flags: uninsdeletekey
Root: HKLM; SubKey: SOFTWARE\Classes\CLSID\{{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\VersionIndependentProgID; ValueType: string; ValueName: ; ValueData: WIA.VideoPreview; Flags: uninsdeletekey[/more]

рег
[more]Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.bmp\OpenWithProgids]
"Paint.NET.1"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jpe\OpenWithProgids]
"Paint.NET.1"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jpeg\OpenWithProgids]
"Paint.NET.1"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.jpg\OpenWithProgids]
"Paint.NET.1"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.png\OpenWithProgids]
"Paint.NET.1"=""

[HKEY_CLASSES_ROOT\CLSID\{D292F82A-50BE-4351-96CC-E86F3F8049DA}]
@="Paint.NET Shell Extension"

[HKEY_CLASSES_ROOT\CLSID\{D292F82A-50BE-4351-96CC-E86F3F8049DA}\InProcServer32]
"ThreadingModel"="Apartment"
@="C:\\Program Files\\Paint.NET\\ShellExtension_x86.dll"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\jpegfile\shell\edit\command]
@="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Paint.Picture\shell\edit\command]
@="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\pngfile\shell\edit\command]
@="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pdn]
@="Paint.NET.1"
"PerceivedType"="Image"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pdn\OpenWithProgids]
"Paint.NET.1"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.pdn\ShellEx\{BB2E617C-0920-11d1-9A0B-00C04FC2D6C1}]
@="{D292F82A-50BE-4351-96CC-E86F3F8049DA}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.tga]
"Content Type"="image/targa"
"PerceivedType"="Image"
@="Paint.NET.1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\.tga\OpenWithProgids]
"Paint.NET.1"=""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Paint.NET.1]
@="Paint.NET Image"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Paint.NET.1\shell\edit\command]
@="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Paint.NET.1\shell\open\command]
@="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Paint.NET.1\shell\print\command]
@="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"print:%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Paint.NET.ThumbExtract\CLSID]
@="{D292F82A-50BE-4351-96CC-E86F3F8049DA}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Paint.NET.ThumbExtract\CurVer]
@="Paint.NET.ThumbExtract.1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\Paint.NET.ThumbExtract.1\CLSID]
@="{D292F82A-50BE-4351-96CC-E86F3F8049DA}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\SharedDlls]
"C:\\WINDOWS\\system32\\wiaaut.dll"=dword:00000002

[HKEY_CLASSES_ROOT\Applications\PaintDotNet.exe\shell\open\command]
@="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"%1\""

[HKEY_CURRENT_USER\Software\Classes\Applications\PaintDotNet.exe\shell\open\command]
@="\"C:\\Program Files\\Paint.NET\\PaintDotNet.exe\" \"%1\""

[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\App Paths\PaintDotNet.exe]
@="C:\\Program Files\\Paint.NET\\PaintDotNet.exe"
"Path"="C:\\Program Files\\Paint.NET"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}]
@="VideoPreview Class"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\Control]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\InprocServer32]
@="C:\\WINDOWS\\system32\\wiaaut.dll"
"ThreadingModel"="Apartment"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\Insertable]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\MiscStatus]
@="0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\MiscStatus\1]
@="131473"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\ProgID]
@="WIA.VideoPreview.1"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\Programmable]

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\ToolboxBitmap32]
@="C:\\WINDOWS\\system32\\wiaaut.dll, 101"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\TypeLib]
@="{94A0E92D-43C0-494E-AC29-FD45948A5221}"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\Version]
@="1.0"

[HKEY_LOCAL_MACHINE\SOFTWARE\Classes\CLSID\{0B5F2CC8-5E1E-44F9-899B-3B789705AFCA}\VersionIndependentProgID]
@="WIA.VideoPreview"
[/more]
Автор: Diawer
Дата сообщения: 17.09.2008 20:21
Я переделал Autorun под себя, но убрал звуки при наведении на пункт меню, так как в оригинале он глючит, помогите привязать click.wav (имееться в комплекте), что бы он срабатывал когда наводишь курсор.
Мой Авторан
Автор: Artem_Butenko
Дата сообщения: 17.09.2008 20:22
ComradG - что-то не слышно Ваших предложений по поводу кодинга патчера в Inno Setup. На форуме парадокс - повальный интерес к секции [Registry], интересно, а что далее?
Автор: Diawer
Дата сообщения: 17.09.2008 20:36
Извиняюсь чё то не работает, может так Autorun ,

Добавлено:
Куда лучше файл выложить, Depositfiles не идёт?
Автор: Artem_Butenko
Дата сообщения: 18.09.2008 01:45
Товарищи - наверное многие задумывались над тем как привязать нестандартную озвучку (в формате .wav) к появлению сообщений в Inno Setup (например, появление диалоговых окон, окна "О программе..."). Если у кого-нибудь есть наработки, пожалуйста поделитесь своим опытом.
Автор: Diawer
Дата сообщения: 18.09.2008 10:30
Помогите совместить два кода [more=(1)][Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=My Program
UninstallDisplayName=My Program

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[_Code]
var
ResultCode: Integer;
ResultStr: string;

function InitializeSetup(): Boolean;
begin
Result := True;
begin
If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Program_is1', 'DisplayName', ResultStr) then //брать из AppName
begin
If ResultStr='My Program 1.0' then //брать из UninstallDisplayName
begin
ResultStr:=RemoveQuotes(ResultStr);
if MsgBox('Setup has detected that ' + ResultStr + ' is already installed on your computer.'#13#13'You would like to remove all before continuing?', mbInformation, MB_OKCANCEL) = idCANCEL then
begin
Result := False;
end else
If RegQueryStringValue(HKLM, 'SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\My Program_is1', 'UninstallString', ResultStr) then
begin
If ResultStr <> '' then
begin
ResultStr := RemoveQuotes(ResultStr);
if not Exec(ResultStr, '', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode) then
MsgBox('Uninstall Error. ' #13#13 '' + SysErrorMessage(ResultCode) + '.' #13#13 'Probably, uninstall files was moved, removed or renamed.', mbError, MB_OK);
end;
end;
end;
end;
end;
end; [/more] - инсталлятор определяет, что программа уже установленна, сообщение на подтверждение и запуск деинсталлятора,
[more=(2)][Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=My Program
UninstallDisplayName=My Program

[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl

[Files]
Source: ISTask.dll; DestDir: {app}
Source: ISTask.dll; DestDir: {tmp}; Flags: dontcopy

[_Code]
function KillTask(ExeFileName: string): Integer;
external 'KillTask@files:ISTask.dll stdcall delayload setuponly';

function RunTask(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@files:ISTask.dll stdcall delayload setuponly';

function KillTaskA(ExeFileName: string): Integer;
external 'KillTask@{app}\ISTask.dll stdcall delayload uninstallonly';

function RunTaskA(FileName: string; bFullpath: Boolean): Boolean;
external 'RunTask@{app}\ISTask.dll stdcall delayload uninstallonly';


function InitializeSetup(): Boolean;
begin
If RunTask('My Program.exe', false) then
begin
if MsgBox('Программа установки обнаружила, что программа PowerOff запущена в данный момент.'#13#13'Закрыть программу и продолжить удаление?', mbInformation, mb_YesNo) = idYes then
begin
KillTask('My Program.exe');
Result := True;
end else
Exit;
end;
Result := True;
end;

procedure CurUninstallStepChanged(CurUninstallStep: TUninstallStep);
begin
if CurUninstallStep = usUninstall then
begin
UnloadDLL(ExpandConstant('{app}\ISTask.dll'));
end;
end;

function InitializeUninstall(): Boolean;
begin
If RunTaskA('My Program.exe', false) then
begin
if MsgBox('Программа удаления обнаружила, что программа PowerOff запущена в данный момент.'#13#13'Закрыть программу и продолжить удаление?', mbInformation, mb_YesNo) = idYes then
begin
KillTaskA('My Program.exe');
Result := True;
end else
Exit;
end;
Result := True;
end; [/more] - инсталлятор определяет, что программа запущена и предлагает выгрузить (закрыть) процесс, перед установкой и перед удалением. Когда деинсталлятор запускаешь через ярлык код (1) не участвует (всё нормально), а вот когда повторную установку при запущенной программе, то надо, что бы сначала срабатывал (1)код -нажимаем "Да", срабатывает код (2), ну а там уже появляется стандартное сообщение инстала "Вы действительно хотите удалить %1 и все компоненты программы?" (его впринципе можно убрать)
Автор: PunisherVIP
Дата сообщения: 18.09.2008 10:43
Текст...потихоньку въезжаю в прогу, но пока еще только "догадки". Долбил весь день, и не могу понять. Если есть [Registry], то он запускаесть все (если несколько регов) а если их 2, и надо сделать чтоб после установки он выдавал: "какой выбрать?" Я так понимаю надо че-то дописать после [Run] но я ничего не понимаю...помогите плиз..Реги такие:
[Registry]
Root: HKCU; SubKey: Software\Valve\Steam; ValueType: string; ValueName: Language; ValueData: English
Root: HKCU; SubKey: Software\Valve\Steam; ValueType: string; ValueName: Language; ValueData: Russian
P.S. я нуп =(
Автор: Raf_SE
Дата сообщения: 18.09.2008 11:55
PunisherVIP

Цитата:
но пока еще только "догадки"

Ну я видь сказал, чтай справку по секции [Components] и всё поймёшь.


Цитата:
и надо сделать чтоб после установки

Зачем идти через задний проход? В нормальных инсталляхах, какую версию устанавливать (русскую илии английскую) спрашивают перед началом инсталляции. Кстати, как меню выбора красиво оформить, написано и мануале от Kindly
Автор: Victor_Dobrov
Дата сообщения: 18.09.2008 13:49
htuos - добавил GameScript Generator в шапку. Этот визард пригодиться для создания инсталляторов с музыкой и слайд-шоу.
Автор: adamov3
Дата сообщения: 18.09.2008 15:33
Кто-нить видел инсталл Alone in the dark? Там родной 'Инно'. Как его повторить?
Автор: Raf_SE
Дата сообщения: 18.09.2008 16:52
adamov3
Ты хотя б скрины сделал...
Автор: cepbl4
Дата сообщения: 19.09.2008 07:32
Вопрос насчет внесенных установщиком значений в реестр

Есть значение, вносимое, моим инсталлятором:
Root: HKCU; SubKey: Software\xxx\xxx; ValueType: string; ValueName: Somefile; ValueData: {app}

Когда введено {app} вносится обычный адрес типа
D:\Program Files\ACD Systems\ACDSee\8.0\xxx.exe

можно как-то сделать так, чтобы, адрес к файлу указывался в коротком виде (без пробелов):
D:\Distrs\FACEFI~1.1\data1.hdr

Заранее спасибо
Автор: LinkX
Дата сообщения: 19.09.2008 10:16
В шапке в InnoSetup Upgrade от Victor_Dobrov, есть скрипт который позволяет увидеть все неучтённые при инсталляции файлы и выбрать те, которые нужно удалить, а которые - оставить.
Помогите убрать все остальное, что бы осталось только то что относится к нему.
Автор: adamov3
Дата сообщения: 19.09.2008 10:44

Цитата:
Ты хотя б скрины сделал...


Я не о внешности, а о функциональности:
На первой странице находится чекбокс "Выборочная установка" - если он не отмечен, тот сразу после принятия лицензионного соглашения начинается установка по умолчанию ("C:\Program Files\.." и т. д.).
Если чекбокс отмечен, то после лицензии появляется страница выбора папки установки, причем с элементами секции [Tasks], т. е. чекбоксы "Создать значки", "Запустить после установки..." и т. п.
Как это реализовать?
Может легче все это выдрать из CompiledCode.bin упомянутым выше декомпилятором, только где ж его взять.














Автор: Sampron
Дата сообщения: 19.09.2008 11:59
adamov3
[more]
[_Code]
var
CheckBox: TCheckBox;

procedure InitializeWizard();
begin
CheckBox:=TCheckBox.Create(WizardForm);
CheckBox.SetBounds(170,250,200,17)
CheckBox.Caption:='Выборочная установка'
CheckBox.Checked:=True
CheckBox.Parent:=WizardForm.WelcomePage
end;

procedure CurPageChanged(CurPageID: Integer);
begin
if not CheckBox.Checked then
case CurPageID of
wpPassword, wpInfoBefore, wpUserInfo, wpSelectDir,
wpSelectComponents, wpSelectProgramGroup, wpSelectTasks,
wpReady, wpPreparing, wpInstalling, wpInfoAfter, wpFinished:
WizardForm.NextButton.OnClick(nil)
end
end;
[/more]
Автор: adamov3
Дата сообщения: 19.09.2008 12:53
Ух ты!
Автор: Artem_Butenko
Дата сообщения: 19.09.2008 13:47
ComrаdG - наверное в десятый раз прошу, дайте пожалуйста ссылку на декомпилятор .bin файлов распакованных инсталляторов. Поверьте, очень нужно!
Автор: Raf_SE
Дата сообщения: 19.09.2008 13:58

Цитата:
распакованных инсталляторов

.bin файлы, запакованые Inno, прекрасно расспаковывает "Inno Setup Unpacker". Насчёт "распакованных" помоему не сюда...

Страницы: 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970

Предыдущая тема: Презентация


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