Войти

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


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

habib2302
25-11-2013, 14:13
Доброе время суток. Как добавить переключатель языков инсталлятора
http://i.imgur.com/xTAzQo4.png http://i.imgur.com/u2o9C2Q.png (http://i.imgur.com/GWorNL8.png)

nik1967
25-11-2013, 16:31
habib2302, я выкладывал пример несколько страниц назад (http://forum.oszone.net/post-2246421.html#post2246421). А так, как реализовано у нас - не для паблика.

habib2302
25-11-2013, 16:52
nik1967, только не все переводит!!!

nik1967
25-11-2013, 16:55
habib2302, естественно - это же только пример. Чтобы было переведено - нужно переписывать все лейблы, сообщения и всё остальное.

FX-DENIS
25-11-2013, 17:54
и в таком варианте у вас появляется 103% ? Здесь же составляется элементарная пропорция, т.е. Max = 100%, Position = x, от сюда получается x=(Position*100)/Max »
Да,если с фри арком скрипт,все что ты давал стандартный прогресс показывает 103%.Санчез помог дав альтернативные варианты ,где пишется с нолями 100.00%.
Я лучше промолчу... »
А что тебя так напрягает?что я о тебе вспомнил?Ты же мне много помогал всегда тут.

Serega
25-11-2013, 19:20
все что ты давал стандартный прогресс показывает 103% »
Единственное объяснение, это только глюк инно, т.е. Position становится больше Max, математически формула верна. В любом случае, у меня ни разу не было более 100%

Shkutu
25-11-2013, 20:09
Доброго времени суток!
Может кто-то подскажет, с помощью чего лучше осуществлять взаимодействие inno setup и ms sql server 12 (разворачивать базу, выполнять запросы)?
Есть sqlcmd.exe, но это работает только для 64-битной системы. Версию этой утилиты для 32х битной найти не могу:(
Может, кто-то знает, где взять или подскажет, чем можно заменить?

Optitron
25-11-2013, 20:18
Здравствуйте. Нужна помощь. Не удается страницу "компоненты" поставить перед объединенной страницой папки установки и меню пуск, вот скрипт


[Setup]
DisableReadyPage=yes
DisableProgramGroupPage=true

[Components]
Name: 1; Description: 1; Flags: exclusive; Types: custom compact full
Name: 2; Description: 2; Flags: exclusive;
Name: 3; Description: 3; Flags: exclusive;


[Code]
procedure InitializeWizard();
begin
//проблема начинается тут
WizardForm.SelectedComponentsBitmapImage.Parent := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsLabel.Parent := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsBrowseLabel.Parent := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsSelectComponentsLabel2 := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsFullInstallation := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsCompactInstallation := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsCustomInstallation := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsNoUninstallWarningTitle := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsNoUninstallWarning := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsComponentSize1 := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsComponentSize2 := WizardForm.SelectDirPage;
WizardForm.SelectedComponentsComponentsDiskSpaceMBLabel := WizardForm.SelectDirPage;
//конец проблемы

WizardForm.ComponentsList.Top := ScaleY(45);
WizardForm.ComponentsList.Height := ScaleY(160);
WizardForm.TypesCombo.Visible := False;

WizardForm.DiskSpaceLabel.Top := ScaleY(65);
WizardForm.DirBrowseButton.Top := ScaleY(36);
WizardForm.DirEdit.Top := ScaleY(37);
WizardForm.NoIconsCheck.Parent := WizardForm.SelectDirPage;
WizardForm.SelectDirLabel.Top := ScaleX(09)
WizardForm.SelectDirBitmapImage.Top := ScaleY(0)
WizardForm.SelectDirBrowseLabel.Visible := False
WizardForm.SelectGroupBitmapImage.Top := ScaleY(95);
WizardForm.SelectGroupBitmapImage.Parent := WizardForm.SelectDirPage;
WizardForm.GroupBrowseButton.Parent := WizardForm.SelectDirPage;
WizardForm.GroupBrowseButton.Top := ScaleY(133);
WizardForm.GroupEdit.Parent := WizardForm.SelectDirPage;
WizardForm.GroupEdit.Top := ScaleY(134);
WizardForm.SelectStartMenuFolderBrowseLabel.Parent := WizardForm.SelectDirPage;
WizardForm.SelectStartMenuFolderBrowseLabel.Top := ScaleY(170);
WizardForm.SelectStartMenuFolderLabel.Parent := WizardForm.SelectDirPage;
WizardForm.SelectStartMenuFolderLabel.Top := ScaleY(105);
end;

El Sanchez
25-11-2013, 23:11
.Санчез помог дав альтернативные варианты ,где пишется с нолями 100.00%. »
FX-DENIS, если не нужна дробная часть, в функции Format в первом параметре поставить точку, чтобы получилось '%.n %%'.
Версию этой утилиты для 32х битной найти не могу »
Shkutu, http://go.microsoft.com/fwlink/?LinkID=239649&clcid=0x419

Nordek
26-11-2013, 04:49
Не удается страницу "компоненты" поставить перед объединенной страницой папки установки и меню пуск »

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

[Messages]
russian.WizardSelectDir=Выбор компонентов
russian.SelectDirDesc=Какие компоненты должны быть установлены?
russian.WizardSelectComponents=Выбор папки установки
russian.SelectComponentsDesc=В какую папку вы хотите установить [name]?
default.WizardSelectDir=Select Components
default.SelectDirDesc=Which components should be installed?
default.WizardSelectComponents=Select Destination Location
default.SelectComponentsDesc=Where should [name] be installed?

[Code]
procedure InitializeWizard();
begin
WizardForm.ComponentsList.Top := ScaleY(45);
WizardForm.ComponentsList.Height := ScaleY(160);
WizardForm.TypesCombo.Visible := False;
WizardForm.DiskSpaceLabel.Parent := WizardForm.SelectComponentsPage;
WizardForm.DiskSpaceLabel.Top := ScaleY(65);
WizardForm.DirBrowseButton.Parent := WizardForm.SelectComponentsPage;
WizardForm.DirBrowseButton.Top := ScaleY(36);
WizardForm.DirEdit.Parent := WizardForm.SelectComponentsPage;
WizardForm.DirEdit.Top := ScaleY(37);
WizardForm.NoIconsCheck.Parent := WizardForm.SelectComponentsPage;
WizardForm.NoIconsCheck.Parent := WizardForm.SelectComponentsPage;
WizardForm.SelectDirLabel.Parent := WizardForm.SelectComponentsPage;
WizardForm.SelectDirLabel.Top := ScaleX(09)
WizardForm.SelectDirBitmapImage.Parent := WizardForm.SelectComponentsPage;
WizardForm.SelectDirBitmapImage.Top := ScaleY(0)
WizardForm.SelectDirBrowseLabel.Parent := WizardForm.SelectComponentsPage;
WizardForm.SelectDirBrowseLabel.Visible := False
WizardForm.SelectGroupBitmapImage.Parent := WizardForm.SelectComponentsPage;
WizardForm.SelectGroupBitmapImage.Top := ScaleY(95);
WizardForm.GroupBrowseButton.Parent := WizardForm.SelectComponentsPage;
WizardForm.GroupBrowseButton.Top := ScaleY(133);
WizardForm.GroupEdit.Parent := WizardForm.SelectComponentsPage;
WizardForm.GroupEdit.Top := ScaleY(134);
WizardForm.SelectStartMenuFolderBrowseLabel.Parent := WizardForm.SelectComponentsPage;
WizardForm.SelectStartMenuFolderBrowseLabel.Top := ScaleY(170);
WizardForm.SelectStartMenuFolderLabel.Parent := WizardForm.SelectComponentsPage;
WizardForm.SelectStartMenuFolderLabel.Top := ScaleY(105);
WizardForm.ComponentsDiskSpaceLabel.Parent := WizardForm.SelectDirPage;
WizardForm.ComponentsList.Parent := WizardForm.SelectDirPage;
WizardForm.TypesCombo.Parent := WizardForm.SelectDirPage;
WizardForm.SelectComponentsLabel.Parent := WizardForm.SelectDirPage;
end;

При переставлении страниц, ещё нужно проводить манипуляции в [Messages] иначе в MainPanel белиберда будет.

Shkutu
26-11-2013, 13:05
El Sanchez, спасибо!:)

icetanker
26-11-2013, 17:46
парни,спасайте
есть готовый javascript,в котором выполняется настройки браузера и надежных узлов,так же 3 файла,которые выполняются в скрипте .bat, reg, msi,нужно ,чтобы запускался скрипт с помощью установщика,сделал задачу через sfx архив,но хотелось бы сделать красивый установщик,решил сделать через inno setup,сейчас получается,что Myprogram(установщик,который я собрал) устанавливается,после этого только запускается сам файл,зачем лишняя программа нужна,а цель моей настроить браузер и установить msi,а я хотел бы,чтобы сразу запускался мой скрипт,который я сделал через sfx и был бар прогресса
подскажите,как мне сделать такой установщик?

FX-DENIS
27-11-2013, 10:40
мой скрипт,который я сделал через sfx и был бар прогресса
подскажите,как мне сделать такой установщик? »


//////////////sfx архив расположен внутри
[Files]
Source: "sfx.exe"; DestDir: "{app}"; AfterInstall: MyAfterInstall; Flags: ignoreversion deleteafterinstall

///////Секция CODE
procedure MyAfterInstall();
var
ResultCode: Integer;
begin
begin
Exec(ExpandConstant('{app}\sfx.exe'), '-e -aoa -y', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
end
end;



///////////Архив SFX снаружи возле Setup.exe
[Files]
Source: "{src}\Rus\NFSMWRUS.exe"; DestDir: "{app}"; Flags: ignoreversion external deleteafterinstall
[Run]
Filename: "{app}\NFSMWRUS.exe"; WorkingDir: "{app}"; Parameters: "-y"; StatusMsg: "Процесс руссификации..."; Flags: waituntilterminated skipifdoesntexist

,но в чем смысл скрипт сжимать в SFX и потом из него запускать,лучше тогда фри арк ,и прогресс бар там есть.

icetanker
27-11-2013, 11:10
спасибо,а можно ли сделать так.чтобы создавалась временная папка и удалялась,он бы выполнял настройку браузера и устанавливал программу parser,которая вшита в sfx архив
или перефразирую,мой sfx архив предназначен для настройки браузера и установки msxml parser
то есть при нажатие на него устанавливается только парсер,а настройки просто проставляются,а сейчас получается,что создается папка с uninstaller и еще с exe,она вообще не нужна,так как сам установщик уже проделал установку parsera и настройку браузера
CreateUninstallRegKey=no
Uninstallable=no
я так понимаю эти команды не совсем то,так как они обновляют программу,но не создают в установка и удаление пункта

; Скрипт создан через Мастер Inno Setup Script.
; ИСПОЛЬЗУЙТЕ ДОКУМЕНТАЦИЮ ДЛЯ ПОДРОБНОСТЕЙ ИСПОЛЬЗОВАНИЯ INNO SETUP!

#define MyAppName "Security"
#define MyAppVersion "1.0"
#define MyAppPublisher "1"
#define MyAppURL "http://www.1.ru"
#define MyAppExeName "Security.exe"

[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppId={{BE9FA853-7367-49A8-90BD-73857BBEAFDA}
AppName={#MyAppName}
AppVersion={#MyAppVersion}
;AppVerName={#MyAppName} {#MyAppVersion}
AppPublisher={#MyAppPublisher}
AppPublisherURL={#MyAppURL}
AppSupportURL={#MyAppURL}
AppUpdatesURL={#MyAppURL}
DefaultDirName=Security\{#MyAppName}
DefaultGroupName={#MyAppName}
DisableProgramGroupPage=yes
OutputDir=C:\Users\user\Desktop
OutputBaseFilename=Security
SetupIconFile=C:\Users\user\Desktop\logos.ico
Compression=lzma
SolidCompression=yes

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

//////////////sfx архив расположен внутри
[Files]
Source: "security.exe"; DestDir: "{app}"; AfterInstall: MyAfterInstall; Flags: ignoreversion
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

[Code]
procedure MyAfterInstall();
var
ResultCode: Integer;
begin
begin
Exec(ExpandConstant('{app}\security.exe'), '-e -aoa -y', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
end
end;
честно говоря,очень херовый программер,простите за тупые вопросы

Nordek
27-11-2013, 12:17
а сейчас получается,что создается папка с uninstaller и еще с exe,она вообще не нужна »Я так понимаю инсталлятор тебе нужен только в качестве исполнителя (грубо говоря авторан)?

[Setup]
AppName=My Program
AppVersion=1.5
CreateAppDir=no
Uninstallable=false

CreateAppDir=no - Чтоб не создавался каталог приложения.
Uninstallable=false - Не деинсталлировать. Это значит не применять деинсталляцию любого рода, в том числе и создание деинсталлятора.

CreateAppDir - Создание каталога приложения
Uninstallable - Деинсталляция
UpdateUninstallLogAppName - Обновление имени приложения в журнале деинсталляции
CreateUninstallRegKey - Создание ключа в реестре для деинсталляции

Примечание: При применении Uninstallable=false, дополнительные значения типа UpdateUninstallLogAppName и CreateUninstallRegKey не требуются.

Optitron
27-11-2013, 13:34
Nordek, Благодарю за ответ, только вот есть один нюанс: после нажатии "Далее" в странице с выбором компонентов инсталлятор предупреждает о том, что папка уже существует. Можно как-нибудь переместить это окошко после выбора папки установки? Не очень-то охото применять "DirExistsWarning=no".
И ещё вопрос. Как для каждого компонента (пусть их будет 2) сделать по дефолту свой путь установки (с возможностью изменения).

icetanker
27-11-2013, 14:00
Nordek,FX-DENIS, оставил так,он все равно при установке просит,чтобы я указавал,где ему создать ярлык,что не надо
[Setup]
; Примечание: Значение AppId идентифицирует это приложение.
; Не используйте одно и тоже значение в разных установках.
; (Для генерации значения GUID, нажмите Инструменты | Генерация GUID.)
AppName=Security
AppVersion=1.0
CreateAppDir=no
Uninstallable=false

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

//////////////sfx архив расположен внутри
[Files]
Source: "security.exe"; DestDir: "{app}"; AfterInstall: MyAfterInstall; Flags: ignoreversion
[Icons]
Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"

[Code]
procedure MyAfterInstall();
var
ResultCode: Integer;
begin
begin
Exec(ExpandConstant('{app}\security.exe'), '-e -aoa -y', '', SW_SHOWNORMAL, ewWaitUntilTerminated, ResultCode);
end
end;

El Sanchez
27-11-2013, 17:25
icetanker,

[Setup]
AppName=Security
AppVersion=1.0
CreateAppDir=no
Uninstallable=no
CreateUninstallRegKey=no

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

[Files]
Source: security.exe; DestDir: {tmp}; Flags: deleteafterinstall

[Run]
Filename: {tmp}\security.exe; Parameters: -e -aoa -y; StatusMsg: Installing Security...; Flags: runhidden

icetanker
27-11-2013, 17:53
El Sanchez, завтра попробую

Nordek
27-11-2013, 17:55
он все равно при установке просит,чтобы я указавал,где ему создать ярлык,что не надо »

Потому что присутствует секция [Icons].
Удали эту секцию, со всеми её вытекающими, т.е:
[Icons]
Name: {group}\{#MyAppName}; Filename: {app}\{#MyAppExeName}




© OSzone.net 2001-2012