Показать полную графическую версию : Скрипты Inno Setup. Помощь и советы [часть 5]
Johny777
23-01-2013, 15:42
elmariacci, необходима проверка в реестре на наличие в системе Microsoft .NET Framewok 3.5 (именно 3.5, а не 4+) »
касательно фреимворка: версия выше 3.5 содержит его в себе, поэтому имеются и соответствующие ключи для ... 3.5, 4.0 ...
можешь забить на "именно 3.5, а не 4+", те тебе нужно от 3.5 и выше
реализовал для фреиворка нужную тебе проверку, но я без понятия что такое Dokan.dll и где она должна лежать. Короче смотри пример. Думаю дальше сам разберёшься
[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Components]
Name: comp; Description: I Need Net3.5; Types: full custom;
[Run]
Filename: {app}\dotNetFx35setup.exe; Parameters: /q /norestart; Description: Install Net v3.9; Flags: waituntilterminated; Check: NeedInstall('Net3.5');
Filename: {app}\Dokan.exe; Parameters: ; Description: Install Dokan.dll; Flags: waituntilterminated; Check: NeedInstall('Dokan.dll');
[Code]
function NeedInstall(const InputParam: String): boolean;
begin
case InputParam of
'Net3.5': Result := IsComponentSelected('comp') and not RegKeyExists(HKEY_LOCAL_MACHINE, 'Software\Microsoft\NET Framework Setup\NDP\v3.5');
'Dokan.dll': Result := not FileExists(ExpandConstant('{app}\Dokan.dll'));
end;
end;
==================================================================================================== =
insombia, извиняй, срепов не знаю, помочь не могу
Mailchik
23-01-2013, 22:25
insombia, в ISDone ведь наглядный пример даётся, что не понятного?if not ISSRepExtract ( 0, 0, ExpandConstant('{src}\data.srep') {расположение архива который нужно распаковать}, ExpandConstant('{app}\data1024.arc') {Путь распаковки}, true) then break;
audiofeel
24-01-2013, 18:56
Здравствуйте, можно ли сделать маленькое окошко "DirEdit" прозрачным и чтобы пользователь смог сменить папку установки только нажав на кнопку "изменить" - то есть строчку о конечной папки не редактируемой
Mailchik
24-01-2013, 19:31
audiofeel, [Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Code]
procedure InitializeWizard;
begin
with WizardForm.DirEdit do begin
BorderStyle := bsNone;
AutoSelect := False;
ReadOnly := True;
Color := clBtnFace;
end;
end;
audiofeel
24-01-2013, 21:09
Mailchik, все получилось, но я так понял что на "прозрачность" мне надеется не стоит = белый фон остался. Млин и "transparent" выдает ошибку = оставить что ли как есть, как вы думаете или есть другой способ
Johny777
25-01-2013, 15:31
audiofeel, предлагаю так:
http://img266.imageshack.us/img266/5538/60863698.png (http://imageshack.us/photo/my-images/266/60863698.png/)
[Setup]
AppName=My Program
AppVerName=My Program
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
OutputDir=.
[Code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif
const
MAX_PATH = 260;
MAX_PATH_LEN = 55;
var
PathLabel: TLabel;
function PathCompactPathEx(pszOut: String; pszSrc: String; cchMax: UINT; dwFlags: DWORD): BOOL; external 'PathCompactPathEx{#A}@shlwapi.dll stdcall';
function ShortPath(Input: String; Length: Integer): String;
begin
Result := StringOfChar(#32, MAX_PATH);
PathCompactPathEx(Result, Input, Length, 0);
end;
procedure DirEditOnChange(Sender: TObject);
begin
PathLabel.Caption := ShortPath('Install Path:' + #32 + TEdit(Sender).Text, MAX_PATH_LEN);
end;
procedure InitializeWizard();
begin
with WizardForm do
begin
PathLabel := TLabel.Create(WizardForm)
with PathLabel do
begin
Parent := DirEdit.Parent;
Caption := ShortPath('Install Path:' + #32 + DirEdit.Text, MAX_PATH_LEN);
Transparent := True;
Font.Size := 10;
Left := DirEdit.Left;
Top := DirEdit.Top + Round((DirEdit.Height - Height) div 2);
end;
DirEdit.OnChange := @DirEditOnChange;
DirEdit.Hide;
end;
end;
только значение константы MAX_PATH_LEN настрой при необходимости
audiofeel
25-01-2013, 20:07
Johny777, Всё ОК. когда компилируешь - но стоит объединить с "моим скриптом" = результат DirEdit отображается на первой странице по верх моих каракуль, а мой не прозрачный как был так и есть на своем месте. P.S. по моему хватит, заброшу я его или сделаю на "адвансед инсталлер 9.8"
Johny777
26-01-2013, 13:39
audiofeel, дай исходник с файлами, посмотрю что не так
заброшу я его или сделаю на "адвансед инсталлер 9.8" »
не советую менять инно на всякую фигню
инно - это тот же объект-паскаль/делфи - то бишь язык программирования, хотя и нехило урезанный. Думаю о проистекающих отсюда возможностях нетрудно догадаться (сейчас те кто знают СИ и ассемблер посмеются). Переломайся, изучи и не пожалеешь!
вот тебе демо возможностей (далеко не всех):
1. http://sendfile.su/748778
2: http://sendfile.su/748248
скачай, положи обе программы рядом, поиграйся и садись снова за инно. Будут проблемы спрашивай - чем смогу помогу
R.i.m.s.k.y.
26-01-2013, 14:02
Johny777, второй не качаиццо
Johny777
26-01-2013, 14:11
R.i.m.s.k.y.,
1. у меня всё качается (только-что скачал для проверки) - у тебя что-то с нетом
2. Там нет ничего, что ты не видел :grin: (те инсталл халфы - относительно старая версия)
audiofeel
27-01-2013, 02:48
Johny777, что именно и куда заливать удобнее (цель та ведь моя смешная, может даже глупая - повторить максимально установщик "installshield"
Johny777
27-01-2013, 03:16
audiofeel, лей на http://sendfile.su/ или на http://narod.yandex.ru/
цель та ведь моя смешная, может даже глупая - повторить максимально установщик "installshield" »
типа того есть после установки Inno Ultra в ...\Inno Setup 5\Examples\MUI_InstallShield\MUI_InstallShield.iss
audiofeel, лей на http://sendfile.su/ или на http://narod.yandex.ru/ »
Можно еще и http://f-bit.ru там правда прогрессбар закачек нет, но файл вечно хранятся.
insombia
27-01-2013, 21:03
а можно как-то сделать чтобы файлу у которого нету иконки через скрипт его добавить когда игра будет устаноновлена?
Mailchik
28-01-2013, 10:35
insombia, вопрос отлично сформулирован. http://bestrepack.net/forum/images/smiles/skype42.gif
насколько понятно, вот что вы хотите:
[Icons]
Name: {commondesktop}\My Application; Filename: {app}\MyApplication.exe; WorkingDir: {app}\; IconFilename: {app}\MyApplication.exe;
kodzoyev
28-01-2013, 17:07
Доброго времени суток. Требуются два скрипта к Inno Setup:
Пример скрипта, предназначенного для остановки (с выводом окна которое рекомендует пользователю закрыть браузер, плюс кнопки "ОК" и "Отмена") процесса установки в том случае если запущен браузер интернет. Аналогично установкам таких приложений как Adobe Flash или Unity 3D;
Пример скрипта добавления записи (любой) в реестр.
Спасибо.
Nikish X
29-01-2013, 11:25
Кто-нибудь знает скрипт для этого инстала?
http://img.underverse.su/t/45455/12031611183945455_2_0.png
Nikish X, вот этот "скрипт" (на картинках) и спроси к RG UniGamers.
by_gangster
29-01-2013, 13:50
Здравствуйте, помогите пожалуйста, писал свой вопрос здесь (http://forum.oszone.net/thread-148707-40.html)
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.