PDA

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


Страниц : 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 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 [88] 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133

vint56
18-04-2010, 00:19
patrion, ПРИМЕР
procedure CurStepChanged(CurStep: TSetupStep);
var
ResultCode:Integer;
begin
if CurStep = ssPostInstall then
begin
WizardForm.StatusLabel.Caption:='Идет обновление DirectX ...';
WizardForm.StatusLabel.Font.Color:= ClRed;
WizardForm.StatusLabel.Font.Name:= 'Georgia';
WizardForm.StatusLabel.Font.Size:= 11
WizardForm.StatusLabel.Font.Style := [fsBold, fsItalic];
Exec(ExpandConstant('{src}\DirectX\DXSETUP.exe'), '/silent', ExpandConstant('{src}\DirectX'), SW_SHOW, ewWaitUntilTerminated, ResultCode);
WizardForm.StatusLabel.Caption:='Идет обновление Redist ...';
WizardForm.StatusLabel.Font.Color:= ClRed;
WizardForm.StatusLabel.Font.Name:= 'Georgia';
WizardForm.StatusLabel.Font.Size:= 11
WizardForm.StatusLabel.Font.Style := [fsBold, fsItalic];
Exec(ExpandConstant('{src}\Redist\vcredist_x86.exe'), '/Q', ExpandConstant('{src}\Redist'), SW_SHOW, ewWaitUntilTerminated, ResultCode);
end;
end;

mrdron18
18-04-2010, 15:18
у меня вопрос. я отключил ReadyPage
как на странице SelectTasksPage изменить надпись на кнопке далее (только на этой странице и только на кнопке далее)?
вместо далее - установить
скрипт без всяких наворотов простой
помогите реализовать

vint56
18-04-2010, 16:03
mrdron18,
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpSelectProgramGroup then
begin
If WizardForm.FindComponent('NextButton') is TButton
then
TButton(WizardForm.FindComponent('NextButton')).Caption:='Установить';
end;
end;

YURSHAT
18-04-2010, 16:39
vint56,

Можно еще проще

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpSelectProgramGroup then
WizardForm.NextButton.Caption:='Установить';
end;

mrdron18
18-04-2010, 16:41
спасибо

travian
19-04-2010, 21:54
Помогите пожалуйста.
Как можно удалить кнопку на определённой странице? Или как сделать её не активной, опять же на определённой странице?
Интересующая страницу выбора пути установки.
Интересующая кнопка "назад"

YURSHAT
20-04-2010, 01:06
Помогите пожалуйста.
Как можно удалить кнопку на определённой странице? »

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

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

[code_]

procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID=wpSelectDir then
WizardForm.BackButton.Enabled:=False else
WizardForm.BackButton.Enabled:=True;
//для удаления
//WizardForm.BackButton.Hide else
//WizardForm.BackButton.Show;
end;

mrdron18
21-04-2010, 17:43
procedure CurStepChanged(CurStep: TSetupStep);
var
res:Integer;
app, arc, dest:string;
begin
If CurStep=ssPostInstall
then
begin
app:=ExpandConstant('{app}')+'\7z.exe';
arc:=ExpandConstant('{app}')+'\1.7z';
dest:=ExpandConstant('{app}');
Exec(app, 'x "'+ arc + '" -y -o"'+ dest + '"', '', SW_SHOWNORMAL, ewWaitUntilTerminated, res);
end;
end;
помогите что сюда добавить чтобы консоль не выскакивала? типа как Flags: runhidden; через ран. не как не пойму как сделать

пардон уже разобрался

mariolast
22-04-2010, 16:20
Есть у кого пример окошка в секции
function InitializeUninstall(): Boolean;
с чекбоксами.
Нужно при деинсталляции удалить те компоненты, которые привязаны к галочкам в чекбоксах.

y76uGZ
23-04-2010, 23:34
здравствуйте, нашел скрипт ввода пароля, как можно сделать что бы пароль не шифровался, оставить только форму ввода.
[Setup]
AppName=Password
AppVerName=Encryption Password
CreateAppDir=false
Encryption=true
Password=202cb962ac59075b964b07152d234b70
;на странице пароля ввести: 123

#define EncryptPass
#define i Len(SetupSetting("Password"))
#for {i; i > 0; i--} EncryptPass = EncryptPass + Copy(SetupSetting("Password"), i, 1)
;(можно запутать ещё и так: '0123456789' > '4321098765') #define EncryptPass Copy(EncryptPass, Len(EncryptPass)/2+1, Len(EncryptPass) -Len(EncryptPass)/2) + Copy(EncryptPass, 1, Len(EncryptPass)/2)

[_Code]
var PasswordText: TPanel;

Function DecryptPass(Password: String): String;
var n: Integer;
Begin
for n:= Length(Password) Downto 1 do Result:= Result + Copy(Password, n, 1)
End;

Function CheckPassword(Password: String): Boolean;
Begin
Result:= (GetMD5OfString(Password) = DecryptPass('{#EncryptPass}'))
if not Result then exit;
PasswordText.Caption:= WizardForm.PasswordEdit.Text
WizardForm.PasswordEdit.Text:= DecryptPass('{#EncryptPass}')
PasswordText.Show
End;

Procedure PasswordEditOnKeyUp(Sender: TObject; var Key: Word; Shift: TShiftState);
Begin
WizardForm.Nextbutton.Enabled:= CheckPassword(WizardForm.PasswordEdit.Text)
End;

Procedure CurPageChanged(CurPageID: Integer);
Begin
if CurPageID = wpPassword then if PasswordText.Caption = '' then WizardForm.Nextbutton.Enabled:= CheckPassword(WizardForm.PasswordEdit.Text)
End;

Procedure InitializeWizard;
Begin
WizardForm.PasswordEdit.OnKeyUp:= @PasswordEditOnKeyUp
PasswordText:=TPanel.Create(WizardForm)
PasswordText.SetBounds(WizardForm.PasswordEdit.Left, WizardForm.PasswordEdit.Top, WizardForm.PasswordEdit.Width, WizardForm.PasswordEdit.Height)
PasswordText.Font.Style:= [fsBold]
PasswordText.Alignment:=taLeftJustify
PasswordText.BevelOuter:= bvNone
PasswordText.BorderStyle:= bsSingle
PasswordText.Parent:= WizardForm.PasswordPage
PasswordText.Hide
End;

GOLDLION
26-04-2010, 11:38
Добрый день! По вопросу:
Задача - сделать новую страницу, на которой будет выпадающий список и картинка ниже.
От выбранного пункта в списке зависит картинка и файлы, которые будут копироваться в папку установки. »
никто ничего не подскажет? Нужно тоже самое, способов реализации не вижу. Подскажите, а?

flanger
26-04-2010, 21:30
Всем привет, ребят подскажите как менять скины (темы) для Inno Setup, скачал утилиту ISSkin (SkinBuilder) применил коды которые прилагались но не чего не выходит, не меняет не чего остается прежняя стандартная тема, даже «test compil» проверил только картинку меняет а тему нет (кнопки, окно ) все прежнее.

victor2006
27-04-2010, 23:45
Добрый вечер.
Подскажите плиз, как реализовать следующие:
Инсталлятор устанавливает в папку SteamВ файлы, и попутно, во время установки он в реестре находит ветвь
[HKEY_LOCAL_MACHINE\SOFTWARE\Valve\Steam]
"InstallPath"="C:\\Valve\\SteamA"
там из InstallPath он берет путь C:\Valve\SteamA
и всю папку SteamА копирует в папку SteamB

Спасибо.

ImAge
28-04-2010, 14:44
Столкнулся с такой проблемкой,пользуюсь скриптом от YURSHAT.Собственно сама проблема в том что если я включаю в установку ДиректХ,мой скрипт с фриарком,так вот устанавливается директ,потом начинают распаковыватся архивы ,и текст налаживается на надпись "Обновленеие ДиректХ",возможно поднять текст выше или ниже ?

GrizzlyMK
29-04-2010, 21:05
ImAge,
Что-бы фриарк распаковался до установки ДХ:
В скрипте найди строку if CurStep = ssPostInstall then begin и замени ssPostInstall на ssInstall.

skynetxxx
30-04-2010, 19:14
Здравствуйте !
Такой вопрос:
как перевести название на несколько языков и выдавать название в зависимости от него ?
Например на русском название "Программа", а для всех остальных языков "Programm".
Подозреваю что через #define, но как проверить условие ?

skynetxxx
30-04-2010, 19:40
И ещё есть вопрос: Можно заменить градиент в заднем окне большой картинкой ?

skynetxxx
30-04-2010, 19:56
Вот код вставки картинок:
procedure InitializeWizard();
var
BackgroundBitmapImage: TBitmapImage;
s:string;
width, height:Integer;
begin
WizardForm.Position:=poScreenCenter;
MainForm.BORDERSTYLE:=bsNone;
width:=GetSystemMetrics(0);
height:=GetSystemMetrics(1);
MainForm.Left := 0;
MainForm.Top := 0;
MainForm.Width:=width;
MainForm.Height:=height;
width:=MainForm.ClientWidth;
height:=MainForm.ClientHeight;
ExtractTemporaryFile('Windows7.bmp');
s:=ExpandConstant('{tmp}')+'\Windows7.bmp';
BackgroundBitmapImage := TBitmapImage.Create(MainForm);
BackgroundBitmapImage.Bitmap.LoadFromFile(s);
BackgroundBitmapImage.Align := alClient;
BackgroundBitmapImage.Parent := MainForm;
BackgroundBitmapImage.Stretch:=True;
MainForm.Visible:=True;
end;

-S.S.V.-
01-05-2010, 20:54
Подскажите пожалуйста:
Создаю инсталлятор, указываю папку с файлами программы.
Но сама программа из которой я делаю инсталлятор копирует файлы не только в свою папку, но и в другие места, к примеру: C:\Users\...\AppData\Local\
Как создать скрипт чтобы Inno копировала при установке файлы (выбранные) в другие папки (к примеру: C:\Users\...\AppData\Local\ - в Win7, и C:\Users\...\Application Data\Local Settings - в Win Vista) и чтобы не было привязки к пользователю, т.е. чтобы можно было устанавливать на любом PC.
Заранее благодарю!

YURSHAT
01-05-2010, 21:00
Подскажите пожалуйста: »

Используйте константу {localappdata}




© OSzone.net 2001-2012