Скрипты Inno Setup. Помощь и советы [часть 7]

Ответить
 • Просмотры: 24
Аватара пользователя
Irenis

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение Irenis »

saneksanek,



Код:

Код: Выделить всё

[Files]
Source: Dll\b2p.dll; DestDir:{app}; Flags: dontcopy;
Source: Dll\botva2.dll; DestDir:{app}; Flags: dontcopy;
Source: Dll\ISDone.dll; DestDir:{app}; Flags: dontcopy;
Source: InstallFiles\Logo 3.png; DestDir:{app}; Flags: dontcopy;

Проблема в флаге dontcopy что означает не копировать, а при деинсталляции вы те файлы вызываете и получается ошибка так как они отсутствуют.




читать дальше »




Код:

Код: Выделить всё

#include "Mod\botva22.iss"
[Setup]
AppName=Game
AppVerName=Game
DefaultDirName={pf}\Game
OutputDir=.
[Languages]
Name: "default"; MessagesFile: "compiler:Default.isl"
[Files]
Source: Dll\b2p.dll; DestDir:{app}; Attribs: hidden system; Flags: ignoreversion;
Source: Dll\botva2.dll; DestDir:{app}; Attribs: hidden system; Flags: ignoreversion;
Source: Dll\ISDone.dll; DestDir:{app}; Attribs: hidden system; Flags: ignoreversion;
Source: InstallFiles\Logo 3.png; DestDir:{app}; Attribs: hidden system; Flags: ignoreversion;
[Code]
var
CreateLogo: Longint;
ResultCode: Integer;
function InitializeSetup:boolean;
begin
   if not FileExists(ExpandConstant('{tmp}\b2p.dll')) then ExtractTemporaryFile('b2p.dll');
   if not FileExists(ExpandConstant('{tmp}\botva2.dll')) then ExtractTemporaryFile('botva2.dll');
   Result:=True;
end;
procedure LogoLabelOnClick(Sender: TObject);
begin
  ShellExec('open', 'http://krinkels.org/showthread.php?t=901&page=2', '', '', SW_SHOWNORMAL, ewNoWait, ResultCode)
end;
procedure InitializeWizard;
begin
  ExtractTemporaryFile('Logo 3.png')
  CreateLogo:= ImgLoad(WizardForm.handle, ExpandConstant('{tmp}\Logo 3.png'), ScaleX(5), ScaleY(325), ScaleX(170), ScaleY(34), True, True);
  ImgApplyChanges(WizardForm.Handle);
  with TLabel.Create(WizardForm) do begin
    Parent:=WizardForm;
    AutoSize:=False;
    Transparent:= true;
    SetBounds(ScaleX(5), ScaleY(325), ScaleX(170), ScaleY(34));
    OnClick:=@LogoLabelOnClick;
    Cursor:= CrHand;
  end;
end;
procedure DeinitializeSetup();
begin
  gdipShutdown;
end;
function InitializeUninstall: Boolean;
begin
  FileCopy(ExpandConstant('{app}\b2p.dll'), ExpandConstant('{tmp}\b2p.dll'), False);
  FileCopy(ExpandConstant('{app}\botva2.dll'), ExpandConstant('{tmp}\botva2.dll'), False);
  FileCopy(ExpandConstant('{app}\Logo 3.png'), ExpandConstant('{tmp}\Logo 3.png'), False);
  Result := True;
end;
procedure UnLogoLabelOnClick(Sender: TObject);
begin
  ShellExec('open', 'http://krinkels.org/showthread.php?t=901&page=2', '', '', SW_SHOWNORMAL, ewNoWait, ResultCode)
end;
procedure InitializeUninstallProgressForm;
begin
  CreateLogo:= ImgLoad(UninstallProgressForm.Handle, ExpandConstant('{tmp}\Logo 3.png'), ScaleX(5), ScaleY(325), ScaleX(170), ScaleY(34), True, True);
  ImgApplyChanges(UninstallProgressForm.Handle);
  with TLabel.Create(nil) do
  begin
    Parent:=UninstallProgressForm;
    AutoSize:=False;
    Transparent:= true;
    SetBounds(ScaleX(5), ScaleY(325), ScaleX(170), ScaleY(34));
    OnClick:=@UnLogoLabelOnClick;
    Cursor:= CrHand;
  end;
end;
procedure DeinitializeUninstall();
begin
  gdipShutdown;
end;
Аватара пользователя
killer000

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение killer000 »

помогите скрыть выбор папки при распаковке



вот это убрать



посмотрите скрипт всё правильно


читать дальше »






Код:

Код: Выделить всё

[Setup]
AppName=VideoCacheView 2.70
AppVerName=VideoCacheView 2.70
AppVersion=2.70
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\VideoCacheView
DefaultGroupName=VideoCacheView
SetupIconFile={app}\SetupIconFile.ico
UninstallDisplayIcon={app}\Uninstall-8.ico
UninstallDisplayName=VideoCacheView 2.70 RePack by Killer000
OutputBaseFilename=VideoCacheView 2.70
Compression=lzma2/ultra64
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
Uninstallable=not IsComponentSelected('portab')
DisableProgramGroupPage=yes
DisableReadyPage=yes
DisableWelcomePage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
[Files]
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion 64bit; Check: Lang1 and portab
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and portab;
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and portab;
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion 64bit; Check: Lang2 and portab
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and portab
;Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion 32bit; Check: Lang2 and portab
;Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion 32bit; Check: Lang2 and portab
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang1 and install
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and install
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Lang2 and install
;Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode
;Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode
Source: "{tmp}\rus.bmp"; Flags: dontcopy solidbreak 
Source: "{tmp}\eng.bmp"; Flags: dontcopy solidbreak
Source: "{tmp}\ISSkin.dll"; Flags: dontcopy solidbreak 
Source: "{tmp}\skin.cjstyles"; Flags: dontcopy solidbreak
[Run]
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait; Check: Lang1 and install
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Flags: postinstall skipifsilent nowait; Check: Lang2 and install
[Icons]
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: Comp2
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; MinVersion: 0.0,5.0; Check: Comp2
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: Comp1
[Languages]
Name: "ru"; MessagesFile: "embedded\Russian.isl";
[CustomMessages]
ru.NameAndVersion=%1, версия %2
ru.AdditionalIcons=Дополнительно:
ru.CreateDesktopIcon=Ярлык на &Рабочем столе
ru.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
ru.ProgramOnTheWeb=Сайт %1 в Интернете
ru.UninstallProgram=Удалить
ru.LaunchProgram=Запустить %1
ru.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
ru.AssocingFileExtension=Связывание %1 с файлами %2...
ru.AutoStartProgramGroupDescription=Автозапуск:
ru.AutoStartProgram=Автоматически запускать %1
ru.AddonHostProgramNotFound=%1 не найден в указанной вами папке.%n%nВы всё равно хотите продолжить?
ru.Shortcut=Ярлыки в меню «Пуск»
ru.ContextMenu=Пункт контекстного меню
ru.Install=Установка обычной версии Русский
ru.Installen=Установка обычной версии Англиский
ru.Portable=Распаковка портативной версии (рядом с инсталлятором) Русский
ru.Portableen=Распаковка портативной версии (рядом с инсталлятором) Англиский



Код:

Код: Выделить всё

procedure WizardFormCreate(Sender: TObject); forward;
procedure RedesignWizardForm;
begin
  with WizardForm do
  begin
    Color := $121212;
    OnCreate := @WizardFormCreate;
  end;
end;
procedure WizardFormCreate(Sender: TObject);
begin
end;
var
  Component: TWizardPage; 
  portable,installer,LangRus,LangEng: TNewRadioButton; 
  FlagImage: TBitmapImage; 
  Lang,Copmp: TLabel; 
  CompPanel: TPanel; 
  Icons,PuskIcons: TNewCheckBox; 
procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';
function InitializeSetup(): Boolean; 
begin 
  if not FileExists(ExpandConstant('{tmp}\rus.bmp')) then ExtractTemporaryFile('rus.bmp'); 
  if not FileExists(ExpandConstant('{tmp}\eng.bmp')) then ExtractTemporaryFile('eng.bmp');
  if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
  if not FileExists(ExpandConstant('{tmp}\Skin.cjstyles')) then ExtractTemporaryFile('Skin.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\Skin.cjstyles'), ''); 
  Result := True; 
end;
 function Lang1: Boolean; 
begin 
  Result:= LangRus.Checked; 
end; 
function Lang2: Boolean; 
begin 
  Result:= LangEng.Checked; 
end; 
function Comp1: Boolean; 
begin 
  Result:= Icons.Checked; 
end; 
function Comp2: Boolean; 
begin 
  Result:= PuskIcons.Checked; 
end; 
function install: Boolean; 
begin 
  Result := installer.Checked; 
end; 
function portab: Boolean; 
begin 
  Result := portable.Checked; 
end; 
procedure CopmpClick(Sender: TObject); 
begin 
  case TNewRadioButton(Sender) of 
    portable: 
    begin 
    Icons.Checked:=False; 
    Icons.Enabled:= Icons.Checked; 
    PuskIcons.Checked:=False; 
    PuskIcons.Enabled:= PuskIcons.Checked; 
    end; 
    installer: 
    begin 
    Icons.Checked:=True; 
    Icons.Enabled:= Icons.Checked; 
    PuskIcons.Checked:=True; 
    PuskIcons.Enabled:= PuskIcons.Checked; 
  end; 
end; 
end; 
procedure LangClick(Sender: TObject); 
begin 
  case TNewRadioButton(Sender) of 
    LangRus: 
    begin 
    FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\rus.bmp')); 
    FlagImage.Left := ScaleX(216);
    FlagImage.Top := ScaleY(15);
    end; 
    LangEng: 
    begin 
    FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\eng.bmp')); 
    FlagImage.Left := ScaleX(216);
    FlagImage.Top := ScaleY(15);
    end; 
  end; 
end; 
procedure InitializeWizard();
begin 
  RedesignWizardForm;
  Component := CreateCustomPage(wpLicense, 'Выбор компонентов', 'Какие компоненты должны быть установлены?');
  FlagImage := TBitmapImage.Create(WizardForm); 
  with FlagImage do 
  begin 
    Name := 'FlagImage'; 
    Parent := Component.Surface; 
    Left := ScaleX(300); 
    Top := ScaleY(15); 
    Width := ScaleX(220); 
    Height := ScaleY(220);  
  end; 
  CompPanel := TPanel.Create(WizardForm); 
  with CompPanel do 
  begin 
    Parent := Component.Surface; 
    Left := ScaleX(0); 
    Top := ScaleY(0); 
    Width := ScaleX(200); 
    Height := ScaleY(100); 
    BevelOuter := bvNone; 
  end; 
  Copmp := TLabel.Create(WizardForm); 
  with Copmp do 
  begin 
    Parent := CompPanel; 
    Caption := 'Тип и компоненты:'; 
    Left := ScaleX(0); 
    Top := ScaleY(5); 
    Width := ScaleX(150); 
    Height := ScaleY(13); 
  end; 
  portable := TNewRadioButton.Create(WizardForm); 
  with portable do 
  begin 
    Parent := CompPanel; 
    Left := ScaleX(5); 
    Top := ScaleY(25); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Распаковка портативной версий'; 
    OnClick:=@CopmpClick; 
  end; 
  Icons := TNewCheckBox.Create(WizardForm); 
  with Icons do 
  begin 
    Parent := CompPanel; 
    Left := ScaleX(25); 
    Top := ScaleY(65); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Ярлык(и) на «Рабочем столе»'; 
    Checked:=True; 
  end; 
  PuskIcons := TNewCheckBox.Create(WizardForm); 
  with PuskIcons do 
  begin 
    Parent := CompPanel; 
    Left := ScaleX(25); 
    Top := ScaleY(85); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Ярлык в «Пуск меню»'; 
    Checked:=True; 
  end; 
  installer := TNewRadioButton.Create(WizardForm); 
  with installer do 
  begin 
    Parent := CompPanel; 
    Left := ScaleX(5); 
    Top := ScaleY(45); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Установка обычной версий'; 
    OnClick:=@CopmpClick; 
    Checked:=True; 
  end; 
  Lang := TLabel.Create(WizardForm); 
  with Lang do 
  begin 
    Parent := Component.Surface; 
    Caption := 'Язык интерфейса:'; 
    Left := ScaleX(0); 
    Top := ScaleY(120); 
    Width := ScaleX(150); 
    Height := ScaleY(13); 
  end; 
  LangRus := TNewRadioButton.Create(WizardForm); 
  with LangRus do 
  begin 
    Parent := Component.Surface; 
    Left := ScaleX(5); 
    Top := ScaleY(135); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Язык интерфейса Русский'; 
    OnClick:=@LangClick; 
    Checked:=True; 
  end; 
  LangEng := TNewRadioButton.Create(WizardForm); 
  with LangEng do 
  begin 
    Parent := Component.Surface; 
    Left := ScaleX(5); 
    Top := ScaleY(155); 
    Width := ScaleX(200); 
    Height := ScaleY(17); 
    Caption := 'Язык интерфейса Английский'; 
    OnClick:=@LangClick; 
  end; 
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
    case PageID of
        wpSelectComponents: Result := True;
        wpSelectDir: Result := IsComponentSelected('portab')  False;
    end;
end;







И как прикрутить в этот скрипт

авто определеннее разрядности системы

вот так работало Check: Is64BitInstallMode для x64

для x32 not Is64BitInstallMode



в Check можно прописывать несколько значений

так не выходит Check: Is64BitInstallMode, Lang1 and portab

помогите
Аватара пользователя
nik1967

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение nik1967 »

Здравствуйте, господа.

Кому не сложно, подскажите, пожалуйста. Застрял на реализации следующей вещи:

SetIniString('Client', 'Size', GetIniString('Client', 'Size', '', ExpandConstant('{tmp}\Info.ini')), ExpandConstant('{app}\Info.ini'));

Нужно с двух разных файлов (с разных секций (из папки {tmp})) вписать в один файл (в одну секцию (в папку {app})) размер файла. То есть, в первом файле, допустим, размер 1287 байт, а в другом 2154 байта. Как их приплюсовать в одну секцию? То есть, чтобы в файле в папке {app} размер был 3441 байт, но только в одной секции?

Спасибо за внимание.
Аватара пользователя
killer000

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение killer000 »

nik1967,

спасибо тебе, не могу загрузить исходящая скорость плохая у билайн
Аватара пользователя
nik1967

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение nik1967 »

killer000,
ну тогда сам проверяй




Код:

Код: Выделить всё

;InnoSetupVersion=5.5.1.ee2(u)
[Setup]
AppName=VideoCacheView 2.70 RePack by Killer000
AppVerName=VideoCacheView 2.70
AppVersion=2.70
AppPublisher=RePack by Killer000.
DefaultDirName={pf}\VideoCacheView
DefaultGroupName=VideoCacheView
SetupIconFile={app}\SetupIconFile.ico
UninstallDisplayIcon={app}\Uninstall-8.ico
UninstallDisplayName=VideoCacheView 2.70 RePack by Killer000
OutputBaseFilename=VideoCacheView 2.70
Compression=lzma2/ultra64
SolidCompression=yes
ArchitecturesInstallIn64BitMode=x64
Uninstallable=not Uninstallable
DisableProgramGroupPage=yes
DisableReadyPage=yes
WizardImageFile=embedded\WizardImage.bmp
WizardSmallImageFile=embedded\WizardSmallImage.bmp
[Languages]
Name: "ru"; MessagesFile: "compiler:Languages\Russian.isl";
[Files]
Source: "{tmp}\rus.bmp"; Flags: dontcopy solidbreak 
Source: "{tmp}\eng.bmp"; Flags: dontcopy solidbreak
Source: "{tmp}\ISSkin.dll"; Flags: dontcopy solidbreak 
Source: "{tmp}\skin.cjstyles"; Flags: dontcopy solidbreak
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Portableru 
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableru 
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableru
Source: "{app}\VideoCacheView64.exe"; DestDir: "{src}\VideoCacheView Portable"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Portableen
Source: "{app}\VideoCacheView.chm"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Portableen
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode and Portableru
Source: "{app}\VideoCacheView.exe"; DestDir: "{src}\VideoCacheView Portable"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode and Portableen
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Normalru
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalru
Source: "{app}\VideoCacheView_lng.ini"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalru
Source: "{app}\VideoCacheView64.exe"; DestDir: "{app}"; DestName: "VideoCacheView.exe"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Is64BitInstallMode and Normalen
Source: "{app}\VideoCacheView.chm"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: Normalen
Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode and Normalru
Source: "{app}\VideoCacheView.exe"; DestDir: "{app}"; MinVersion: 0.0,5.0; Flags: ignoreversion; Check: not Is64BitInstallMode and Normalen
[Icons]
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: groupru; 
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; MinVersion: 0.0,5.0; Check: groupru;
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: desktopru;
Name: "{group}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: groupen;
Name: "{group}\{cm:UninstallProgram,VideoCacheView}"; Filename: "{uninstallexe}"; MinVersion: 0.0,5.0; Check: groupen;
Name: "{userdesktop}\{cm:LaunchProgram,VideoCacheView}"; Filename: "{app}\VideoCacheView.exe"; MinVersion: 0.0,5.0; Check: desktopen;
[Run]
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Normalru; Flags: postinstall skipifsilent nowait
Filename: "{app}\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Normalen; Flags: postinstall skipifsilent nowait
Filename: "{src}\VideoCacheView Portable\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Portableru; Flags: postinstall skipifsilent nowait
Filename: "{src}\VideoCacheView Portable\VideoCacheView.exe"; Description: "{cm:LaunchProgram,VideoCacheView}"; MinVersion: 0.0,5.0; Check: Portableen; Flags: postinstall skipifsilent nowait
[Messages]
FinishedLabelNoIcons=Программа [name] распакована на ваш компьютер.
;[CustomMessages]
;ru.NameAndVersion=%1, версия %2
;ru.AdditionalIcons=Дополнительно:
;ru.CreateDesktopIcon=Ярлык на &Рабочем столе
;ru.CreateQuickLaunchIcon=Создать значок в &Панели быстрого запуска
;ru.ProgramOnTheWeb=Сайт %1 в Интернете
;ru.UninstallProgram=Удалить
;ru.LaunchProgram=Запустить %1
;ru.AssocFileExtension=Св&язать %1 с файлами, имеющими расширение %2
;ru.AssocingFileExtension=Связывание %1 с файлами %2...
;ru.AutoStartProgramGroupDescription=Автозапуск:
;ru.AutoStartProgram=Автоматически запускать %1
;ru.AddonHostProgramNotFound=%1 не найден в указанной вами папке.%n%nВы всё равно хотите продолжить?
;ru.Shortcut=Ярлыки в меню «Пуск»
;ru.ContextMenu=Пункт контекстного меню
;ru.Install=Установка обычной версии Русский
;ru.Installen=Установка обычной версии Англиский
;ru.Portable=Распаковка портативной версии (рядом с инсталлятором) Русский
;ru.Portableen=Распаковка портативной версии (рядом с инсталлятором) Англиский
[code]
var
	Sender: TObject;
	FlagImage: TBitmapImage;
	ComponentPage: TWizardPage;
	CheckListBox, CheckListBox2: TNewCheckListBox;
//procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure LoadSkin(lpszPath: string; lpszIniFileName: string ); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';
function InitializeSetup(): Boolean; 
begin 
  if not FileExists(ExpandConstant('{tmp}\rus.bmp')) then ExtractTemporaryFile('rus.bmp'); 
  if not FileExists(ExpandConstant('{tmp}\eng.bmp')) then ExtractTemporaryFile('eng.bmp');
	if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
  if not FileExists(ExpandConstant('{tmp}\Skin.cjstyles')) then ExtractTemporaryFile('Skin.cjstyles');
		LoadSkin(ExpandConstant('{tmp}\Skin.cjstyles'), ''); 
		Result := True; 
end;
procedure OnClick1(Sender: TObject);
begin
	if CheckListBox.Checked[1] then
		WizardForm.DirEdit.text:= ExpandConstant('{src}\VideoCacheView Portable')
	else 
		if Is64BitInstallMode then 
			WizardForm.DirEdit.text:= ExpandConstant('{pf32}\VideoCacheView')
		else
			WizardForm.DirEdit.text:= ExpandConstant('{pf64}\VideoCacheView');
	case WizardForm.CurPageID of
		ComponentPage.ID: 
			if CheckListBox.Checked[1] then begin
				WizardForm.NextButton.Caption:= 'Распаковать';
				WizardForm.Caption:= FmtMessage('Распаковка — %1', [ExpandConstant('{#SetupSetting("AppName")}')]);
			end else begin
        WizardForm.NextButton.Caption:= 'Далее >';
				WizardForm.Caption:= FmtMessage(SetupMessage(msgSetupWindowTitle), [ExpandConstant('{#SetupSetting("AppName")}')]);
			end;
	end;
end;
procedure OnClick2(Sender: TObject);
begin
	if CheckListBox2.Checked[1] then
		FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\rus.bmp')) 
	else
		FlagImage.Bitmap.LoadFromFile(ExpandConstant('{tmp}\eng.bmp')); 
end;
function Uninstallable: boolean;
begin
	Result:= CheckListBox.Checked[1];
end;
function Portableru: boolean;
begin
	Result:= CheckListBox.Checked[1] and CheckListBox2.Checked[1];
end;
function Portableen: boolean;
begin
	Result:= CheckListBox.Checked[1] and CheckListBox2.Checked[2];
end;
function Normalru: boolean;
begin
	Result:= CheckListBox.Checked[2] and CheckListBox2.Checked[1];
end;
function Normalen: boolean;
begin
	Result:= CheckListBox.Checked[2] and CheckListBox2.Checked[2];
end;
function groupru: boolean;
begin
	Result:= CheckListBox2.Checked[1] and CheckListBox.Checked[4];
end;
function desktopru: boolean;
begin
	Result:= CheckListBox2.Checked[1] and CheckListBox.Checked[3];
end;
function groupen: boolean;
begin
	Result:= CheckListBox2.Checked[2] and CheckListBox.Checked[4];
end;
function desktopen: boolean;
begin
	Result:= CheckListBox2.Checked[2] and CheckListBox.Checked[3];
end;
procedure InitializeWizard();
begin
	WizardForm.DiskSpaceLabel.Hide;
	ComponentPage:= CreateCustomPage(wpWelcome, 'Выбор типа, компонентов и языка интерфейса', 'Какой тип, компоненты и язык интерфейса должны быть установлены?');
	FlagImage:= TBitmapImage.Create(WizardForm);
  with FlagImage do begin
		Parent:= ComponentPage.Surface;
		SetBounds(ScaleX(216),ScaleY(15),ScaleX(220),ScaleY(220));
		//BackColor:= clNone;
		//ReplaceColor:= $f0f0f0;
		//ReplaceWithColor:= clNone;
  end;
	CheckListBox:= TNewCheckListBox.Create(WizardForm);
	with CheckListBox do begin
		Top:= ScaleY(0);
		Width:= ComponentPage.SurfaceWidth div 2;
		Height:= ComponentPage.SurfaceHeight div 2;
		Parent:= ComponentPage.Surface;
		BorderStyle:= bsNone;
		ParentColor:= True;
		ShowLines:= false;
		MinItemHeight:= WizardForm.TasksList.MinItemHeight;
		WantTabs:= True;
		OnClickCheck:= @OnClick1;
		AddGroup('Типы и компоненты:', '', 0, nil);
		AddRadioButton('Распаковка портативной версии', '', 0, False, True, nil);
		AddRadioButton('Установка обычной версии', '', 0, True, True, nil);
		AddCheckBox('Ярлык(и) на «Рабочем столе»', '', 1, True, True, False, True, nil);
		AddCheckBox('Ярлыки в меню «Пуск»', '', 1, True, True, False, True, nil);
	end;
	CheckListBox2:= TNewCheckListBox.Create(WizardForm);
	with CheckListBox2 do begin
		Top:= CheckListBox.Top+CheckListBox.Height;
		Width:= ComponentPage.SurfaceWidth div 2;
		Height:= ComponentPage.SurfaceHeight div 2;
		Parent:= ComponentPage.Surface;
		BorderStyle:= bsNone;
		ParentColor:= True;
		ShowLines:= false;
		MinItemHeight:= WizardForm.TasksList.MinItemHeight;
		WantTabs:= True;
		OnClickCheck:= @OnClick2;
		AddGroup('Язык интерфейса:', '', 0, nil);
		AddRadioButton('Русский язык интерфейса', '', 0, True, True, nil);
		AddRadioButton('Английский язык интерфейса', '', 0, False, True, nil);
	end;
		OnClick1(Sender);
		OnClick2(Sender);
end;
procedure CurPageChanged(CurPageID: Integer);
begin
	case CurPageID of
    wpSelectDir: WizardForm.NextButton.Caption:= 'Установить';
	end;
end;
function ShouldSkipPage(PageID: Integer): Boolean;
begin
  case PageID of
		wpSelectDir: Result:= CheckListBox.Checked[1];
  end;
end;
procedure DeinitializeSetup();
begin
	UnloadSkin;
end;




Скинь хотя бы rus.bmp, eng.bmp, ISSkin.dll, skin.cjstyles. Сделаю, чтобы рамки белой не было вокруг картинок.
Аватара пользователя
Irenis

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение Irenis »

Цитата Tco 03:



RegWriteDWordValue
Скрипты Inno Setup. Помощь и советы [часть 7]




А ты точно уверен, что ключ реестра должен быть DWord? Может быть String (строковый параметр)?

Тогда так:

Код:

Код: Выделить всё

RegWriteStringValue(HKLM, 'SOFTWARE\Sapatcom\Client Interface', 'Skin', '1.0.1.2');


Цитата Tco 03:



И как вписать в реестр просто слово?
Скрипты Inno Setup. Помощь и советы [часть 7]




Так же.


Цитата Tco 03:



И ещё... Как потом одно из значений реестра вписать в .ini-файл?
Скрипты Inno Setup. Помощь и советы [часть 7]




Получаешь значение с помощью функции RegGetValueNames, затем записываешь значение в .ini файл.
Аватара пользователя
vint56

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение vint56 »

Подскажите пожалуйста, кто понимает, как можно осуществить вот такое:



Код:

Код: Выделить всё

AfterInstall: "DoServiceInstall('{app}\DfSdkS.exe', 'DfSdkS', 'Defragmentation-Service', 'Defrag Service - powered by mst software')";

а именно DoServiceInstall.



{app}\DfSdkS.exe - программа

DfSdkS - я так понимаю что это ключ

Defragmentation-Service - имя

Defrag Service - powered by mst software - описание
Аватара пользователя
killer000

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение killer000 »

nik1967,

я скинул в личку



nik1967,

на xp ошибка

Изображение
Аватара пользователя
R.i.m.s.k.y.

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение R.i.m.s.k.y. »

Цитата Dodakaedr:



Подскажите пожалуйста, кто понимает, как можно осуществить вот такое
Скрипты Inno Setup. Помощь и советы [часть 7]






Код:

Код: Выделить всё

AfterInstall: DoServiceInstall;
[Сode]
Procedure DoServiceInstall();
begin
 ShellExec(параметры функции посмотри в справке);
end;

Не знаю, это ли тебе нужно. Но параметры запуска программы указать можно (вряд ли можно указать ключ к ней).
Аватара пользователя
killer000

Re: Скрипты Inno Setup. Помощь и советы [часть 7]

Сообщение killer000 »

Цитата kotyarko@fb:



Не знаю, это ли тебе нужно. Но параметры запуска программы указать можно (вряд ли можно указать ключ к ней).
Скрипты Inno Setup. Помощь и советы [часть 7]




ключ тоже можно. Нет не это. Я думаю что надо что-то типа такого:



Код:

Код: Выделить всё

procedure DoServiceInstall(параметры);
begin
 //Код процедуры;
end;

В программировании не очень, поэтому не могу придумать.
Ответить

Вернуться в «Автоматическая установка приложений»