Показать полную графическую версию : [архив] Скрипты Inno Setup. Помощь и советы [часть 2]
хочу сделать что-бы был шрифт(вернуть его на ВСЕ страницы) и возможность его менять »
Ну так просто не используйте данный код и всё будет по умолчанию, а поменять шрифт можно так:
WizardForm.Font.Name:= 'имя шрифта';
kampaster
04-11-2009, 04:50
Доброе утро.... вот зарегистрировался на этом замечательном сайте, делаю репаки - довольно не плохо, вот подумал перекодировать музыку с помощью oggdec.exe..... я знаю как конвертировать музыку из ogg в wav и знаю что писать в батнике и в Inno Setup чтоб это красиво во время установки конвертировалось ну вобщем работало.... но проблема в том что я немогу понять как мне конвертнуть из wav в ogg....
Калбасился калбасился в батнике.... Помогите пожалуйста добрые люди=)
Вот консольный oggdec.exe (команды)
http://pics.kz/s4/01/b2/9e/bf/01b29ebf3922ebc2e15e327444365ffd.jpg
BlackSelf
04-11-2009, 07:45
kampaster, к inno это вообще не относится. А oggdec, к твоему сведению, кодирует только ogg в wav.
kampaster
04-11-2009, 09:04
BlackSelf спасибо за ответ....
А oggdec, к твоему сведению, кодирует только ogg в wav.
Жалко, а я так надеялся....
kampaster, к inno это вообще не относится.
Вобщето относится..... Яже с inno работаю.. поэтому мне это нужно.... Но всёравно спсибо!=)
Serega
да не))) я хочу и скрипт и шрифт!
я хочу и скрипт и шрифт! »
Извините я не телепат и не могу прочитать ваши мысли, что всё таки вы хотите сделать...
К сведению, у каждого TLabel есть Font.Name, т.е. - TLabel.Font.Name:= 'имя'
Inno Setup Compiler [03.11.09] (English) (http://restools.hanzify.org/inno/InnoCompiler091103_English(7zip).zip) - новая версия компилятора от ResTools (http://restools.hanzify.org/)
МИШАНЧИК
05-11-2009, 13:50
Подскажите пожалуйста!
Есть папка Gamedate и нужно сделать чтоб она находилась в дистрибутиве, но копировалась в {app} только когда включен чекбокс на дополнительных задачах.
Как правильно это оформить?
МИШАНЧИК,
[Languages]
Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "gamedata"; Description: "{cm:xxx}";
[CustomMessages]
Russian.xxx=Установить Gamedata?
[Files]
Source: D:\Gamedata\*; DestDir: "{app}"; Tasks: gamedata; Flags: ignoreversion recursesubdirs createallsubdirs
МИШАНЧИК
05-11-2009, 15:42
A1EXXX, большое спасибо!
А ещё вопрос, можно ли как-то сделать чтоб при наведении курсора на этот чекбокс появлялась всплывающая надпись с описанием?
МИШАНЧИК, можно! Немного повозился и вот, что получилось :)
; Первоисточник - скрипт ComponentsDescriptions by Victor Dobrov
; изменён и переделан под TaskPage by A1EXXX
[Setup]
AppName=Tasks Descriptions
AppVerName=Tasks Descriptions 1.0
DefaultDirName=Tasks Descriptions
OutputDir=.
[Languages]
Name: "Russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Files]
; скачать библиотеку descctrl.dll (6 кб) можно здесь: http://victor-dobrov.narod.ru/inno_descctrl.7z
Source: descctrl.dll; Flags: dontcopy;
Source: D:\Gamedata\*; DestDir: "{app}"; Tasks: gamedata; Flags: ignoreversion recursesubdirs createallsubdirs
[CustomMessages]
Russian.xxx=Установка компонента Gamedata
[Tasks]
Name: "gamedata"; Description: "{cm:xxx}";
[Code]
var Point: TPoint; CompDesc: TEdit; MessageForm: TForm; MessagePanel: TPanel; MessageLabel: TLabel; n, frame: integer;
function EnableDesc(TasksListHandle, DescLabelHandle: HWND; DescStrings: PChar): BOOL; external 'enabledesc@files:descctrl.dll stdcall';
function disabledesc(): BOOL; external 'disabledesc@files:descctrl.dll stdcall';
procedure GetCursorPos(var Point: TPoint); external 'GetCursorPos@user32 stdcall delayload';
function SetWindowPos(hWnd, hWndInsertAfter, X, Y, cx, cy, wFlags: Longint):Boolean; external 'SetWindowPos@user32.dll stdcall';
Procedure DrawIcon(Form: TWinControl; File: String; nIcon, Left, Top, Size, BColor: Integer); var Panel: TPanel; Rect: TRect; Begin
Panel:= TPanel.Create(Form); Panel.SetBounds(Left, Top, Size, Size); Panel.Parent:= Form
with TBitmapImage.Create(Panel) do begin Parent:= Panel; with Bitmap do begin
Width:= Size; Height:= Size; Rect.Right:= Size; Rect.Bottom:= Size; Canvas.Brush.Color:= BColor; Canvas.FillRect(Rect); end; end;
End;
Procedure ResizeLabel(Obj: TLabel; Text: String; MaxWidth: Integer); var k, w, h: integer; Begin {размер формы подгоняется под текст}
Obj.AutoSize:= true; Obj.WordWrap:= false; Obj.Caption:= Text; {авторазмер}
w:= Obj.Width; h:= Obj.Height; n:= (w + frame*2)/MaxWidth + 1
Repeat
Obj.Width:= w/n + frame*2*n + k
Obj.Height:= h * n
Obj.WordWrap:= true; k:= k + 4
Until Obj.Height/h = n
End;
Procedure ShowHint(String: string; AIndex: Integer; Center: Bool); Begin {размер формы подгоняется под текст, если AIndex = 0, значок не рисуется}
frame:= 10; if AIndex <> 0 then String:= ' '+ String;
GetCursorPos(Point); MessageLabel.Left:= frame; MessageLabel.Top:= frame
ResizeLabel(MessageLabel, String, WizardForm.ClientWidth)
if Center then n:= WizardForm.Left + WizardForm.Width/2 - (MessageLabel.Width + frame*2 -2)/2 else n:= Point.X + 12
MessageForm.SetBounds(n, Point.Y + 12, MessageLabel.Width + frame*2 -2, MessageLabel.Height + frame*2 -2)
MessageForm.Show; SetWindowPos(MessageForm.Handle, -1, 0, 0, 0, 0, 3);
End;
Procedure DeinitializeSetup();
Begin
disabledesc();
End;
Procedure CurStepChanged(CurStep: TSetupStep);
Begin
if CurStep = ssInstall then disabledesc();
End;
Procedure CurPageChanged(CurPageID: Integer);
Begin
if CurPageID = wpSelectTasks then enableDesc(WizardForm.TasksList.Handle,CompDesc.Handle,
'Демонстрационный режим (описание компонента)'); // текст описания
End;
Procedure ObjectOnClick(Sender: TObject);
Begin
Case TObject(Sender) of {событие объекта}
CompDesc:
if CompDesc.Text > '' then ShowHint(CompDesc.Text, 0, true) else MessageForm.Hide;
MessageForm:
WizardForm.BringToFront;
end;
End;
Procedure InitializeWizard;
Begin
CompDesc:= TEdit.Create(WizardForm)
CompDesc.Parent:= WizardForm
CompDesc.Visible:= false
CompDesc.OnChange:= @ObjectOnClick
MessageForm:= CreateCustomForm;
MessageForm.BorderStyle:= bsNone
MessageForm.OnActivate:= @ObjectOnClick
MessagePanel:= TPanel.Create(MessageForm)
MessagePanel.BevelInner:= bvLowered;
MessagePanel.Align:= alClient;
MessagePanel.Color:= $E1FFFF; // цвет панели
MessagePanel.Parent:= MessageForm
MessageLabel:= TLabel.Create(MessagePanel)
MessageLabel.Transparent:= true
MessageLabel.Font.Name:= 'Tahoma' // шрифт описания
MessageLabel.Font.Size:= WizardForm.Font.Size
MessageLabel.Parent:= MessagePanel
End;
МИШАНЧИК
06-11-2009, 07:35
A1EXXX, большое Вам спасибо! Буду пробовать.
Подобный вопрос звучал уже неоднократно, но ответа на него так и не увидел... В общем, можно ли прикрутить запрос 2-го диска к скрипту Булата FreeArc_Example? Запаковка arc'ов в инсталл не подходит. Или может можно записать в [Files] архив, который будет находиться на другом носителе (хотя бы для SFX, но чтобы по окончании распаковки основных, выводился запрос для следующего архива....)
А ещё лучше бы сделать так (если возможно): допустим, на 1-ом диске находится 4 архива. Распаковавшись, инсталлятор делает паузу и выводит сообщение (окошко) - мол, хотите продолжить, вставьте диск 2, и по нажатии "Да" инсталл не замечая подвоха распаковывает ещё один архив (вот только как сообщить ему заранее, что архивов 5, чтобы прогресс-бар не заполнился до конца :(), а если "Нет" - завершение установки... А может есть решение куда проще? Жду ваших предложений :)
В общем, можно ли прикрутить запрос 2-го диска к скрипту Булата FreeArc_Example? »
Можно, но об этом спросите автора...
P.S.
Обычно я игнорирую вопросы на данную тему... извините, но просто уже устал разбираться в чужих дебрях...
S.E.K.T.O.R.
06-11-2009, 22:19
Уже задавал этот вопрос но ответа не увидел. Мож кто-нибудь догадался как изменить сообщение "Недостаточно места на диске" или вовсе отключить его, а вместо него заставить инсалл выдавать другое
S.E.K.T.O.R.
06-11-2009, 23:15
1) Как сделать, чтобы когда игру уже установлена, при запуске инсталла выскакивало такое вот окошко? »
По-моему никто не ответил, а делается это [Setup]
AppId={{B9B31282-6F8D-4D74-A8F2-24AE59608A9D}
AppName=My Program
AppVerName=My Program 1.5
AppPublisher=My Company, Inc.
AppPublisherURL=http://www.example.com/
AppSupportURL=http://www.example.com/
AppUpdatesURL=http://www.example.com/
DefaultDirName={pf}\My Program
DefaultGroupName=My Program
OutputBaseFilename=setup
Compression=lzma
SolidCompression=yes
[Languages]
Name: "russian"; MessagesFile: "compiler:Languages\Russian.isl"
[Tasks]
Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
[Files]
Source: "C:\Program Files\Inno Setup 5\Examples\MyProg.exe"; DestDir: "{app}"; Flags: ignoreversion
[Icons]
Name: "{group}\My Program"; Filename: "{app}\MyProg.exe"
Name: "{group}\{cm:UninstallProgram,My Program}"; Filename: "{uninstallexe}"
Name: "{commondesktop}\My Program"; Filename: "{app}\MyProg.exe"; Tasks: desktopicon
[Run]
Filename: "{app}\MyProg.exe"; Description: "{cm:LaunchProgram,My Program}"; Flags: nowait postinstall skipifsilent
[Registry]
Root: HKLM; Subkey: Software\My Program; ValueType: string; ValueName: InstallPath; ValueData: {app}; Flags: uninsdeletekey
[_Code]
function InitializeSetup: Boolean;
var
path: string;
res: Integer;
begin
Result:= True;
if RegValueExists(HKLM, 'Software\My Program', 'InstallPath') then
if RegQueryStringValue(HKLM, 'Software\My Program', 'InstallPath', path) then
if FileExists(path + '\MyProg.exe') then
if MsgBox('Запустить My Program?', mbConfirmation, MB_YESNO) = IDYES then
begin
Exec(path + '\MyProg.exe', '', '', SW_SHOW, ewWaitUntilTerminated, res);
Result:= False;
end
else Result:= False;
end;
S.E.K.T.O.R.
07-11-2009, 00:12
Serega, Вы не знаете как инсталл Сталкера определяет версию Windows XP т.е. Professional или Home Edition, а в висте розрядность (32 или 64)
serg aka lain
07-11-2009, 00:22
Professional или Home Edition »
Присмотритесь к Help'у, к функции GetWindowsVersionEx(Version);
// Disallow installation on Home edition of Windows
if Version.SuiteMask and VER_SUITE_PERSONAL <> 0 then
begin
SuppressibleMsgBox('This program cannot be installed on a Home edition of Windows.',
mbCriticalError, MB_OK, MB_OK);
Result := False;
Exit;
end;
// On Windows XP, check for SP2
if Version.NTPlatform and
(Version.Major = 5) and
(Version.Minor = 1) and
(Version.ServicePackMajor < 2) then
begin
SuppressibleMsgBox('When running on Windows XP, Service Pack 2 is required.',
mbCriticalError, MB_OK, MB_OK);
Result := False;
Exit;
end;
S.E.K.T.O.R.
07-11-2009, 01:33
Я хочу чтобы в проверке сист. требований кроме " Microsoft Windows XP Service Pack 2" еще было "Microsoft Windows XP Professional Edition Service Pack 2, а в Висте "Windows Vista Ultimate, 32 bits, Service Pack 1"
ADremLIN
07-11-2009, 03:12
Inno Setup Form Designer (ISFD).
У кого-нибудь остались старые версии сабжа? 2.0.5, 2.0.6с, 2.0.7?
У меня есть 2.0.4.
А вот 2.0.8 почему-то падает с ошибкой: Runtime error 216 at 00404036 (У меня Win7) :(
И было бы совсем неплохо какой нибудь русский хелп к нему...
Спасибо.
[Добавлено]
Мануалы к ISFD похоже "умерли" вместе с официальным сайтом программы.
Прогуглил все что мог - ничего не нашел :(
В веб-архиве упоминалось даже о видео-мануале:
(2006/08/20 Added Video-Tutorials for ISFD http://web.archive.org/web/20061023042833/isfd.kaju74.de)
Может у кого завалялось что-нибудь по теме?
© OSzone.net 2001-2012
vBulletin v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.