Ru-Board.club
← Вернуться в раздел «Программы»

» Inno Setup (создание инсталяционных пакетов)

Автор: boss911
Дата сообщения: 09.09.2012 10:59
[more=Решено]Помогите, плиз, [more=сюда]
Код: [Code ]
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep = ssInstall) and IsTaskSelected('RegistrMaxthon') then // считываем значение
RegQueryStringValue(HKCU, 'Software\Clients\StartMenuInternet', '', StartMenuValue);
if (CurStep = ssDone) and IsTaskSelected('RegistrMaxthon') and (StartMenuValue <> '') then // записываем значение
RegWriteStringValue(HKCU, 'Software\Clients\StartMenuInternet', '', StartMenuValue);
end;
Автор: Hell_Dog2011
Дата сообщения: 09.09.2012 12:10
Всем привет! такой вопрос можно ли сделать как нибудь чтобы появлялось 2 сплеш заставки?
Автор: Gnom3
Дата сообщения: 09.09.2012 12:43
boss911
как-то [more=так]
Код: [Registry]
Root: HKCU; SubKey: Software\Clients\StartMenuInternet; ValueType: string; ValueData: IEXPLORE.EXE; Flags: createvalueifdoesntexist; MinVersion: 0,5.01; OnlyBelowVersion: 0,6.0

[*Code]
procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep = ssDone) then
begin
if IsTaskSelected('RegistrMaxthon') then
begin
RegQueryStringValue(HKCU, 'Software\Clients\StartMenuInternet', '', StartMenuValue); // считываем значение
if (StartMenuValue <> '') then // записываем значение
RegWriteStringValue(HKCU, 'Software\Clients\StartMenuInternet', '', StartMenuValue);
end;
end;
end;
Автор: boss911
Дата сообщения: 09.09.2012 12:53
Gnom3

Не, не так. [Registry] мне уже не нужен, не нужно привязывать к IsTaskSelected('RegistrMaxthon'), а так же нужно записывать только тогда, когда значение не существует, а еще надо MinVersion: 0,5.01; OnlyBelowVersion: 0,6.0.

Я просил взять из [Registry] и вписать аналогичное в [Code].
Автор: Hell_Dog2011
Дата сообщения: 10.09.2012 14:52

Цитата:
Можно. просто создаешь сплеш-заставку дважды.

в том то и дело что ошибку выдаёт
Автор: innonewbie
Дата сообщения: 10.09.2012 16:50
Hell_Dog2011, а [more=так][Files]
Source: isgsg.dll; DestDir: {tmp}; Flags: dontcopy solidbreak deleteafterinstall
Source: Splash1.png; DestDir: {tmp}; Flags: dontcopy solidbreak deleteafterinstall
Source: Splash2.png; DestDir: {tmp}; Flags: dontcopy solidbreak deleteafterinstall

[Code]
procedure ShowSplashScreen(p1:HWND;p2:string;p3,p4,p5,p6,p7:integer;p8:boolean;p9:Cardinal;p10:integer);
external 'ShowSplashScreen@files:isgsg.dll stdcall delayload';

procedure InitializeWizard();
begin
ExtractTemporaryFile('Splash1.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash1.png',500,700,500,0,255,False,$FFFFFF,10);
ExtractTemporaryFile('Splash2.png');
ShowSplashScreen(WizardForm.Handle,ExpandConstant('{tmp}')+'\Splash2.png',500,700,500,0,255,False,$FFFFFF,10);
end;
[/more] не пробовал?
Автор: Nuclear_glare
Дата сообщения: 11.09.2012 08:50
Привет всем форумчанам! Подскажите пожалуйста, почему Инно упорно не хочет использовать прописной шрифт в установщике? Печатные (например, Impact) работают, а вот прописные - нет.
[More]
Код: #define Font "MTCORSVA.ttf"
#define FontName "MTCORSVA"

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

[Files]
Source: {#Font}; Flags: dontcopy

[code]
#ifdef UNICODE
#define A "W"
#else
#define A "A"
#endif

const
FR_PRIVATE = $10;

function AddFontResource(lpszFilename: String; fl, pdv: DWORD): Integer; external 'AddFontResourceEx{#A}@gdi32.dll stdcall';
function RemoveFontResource(lpFileName: String; fl, pdv: DWORD): BOOL; external 'RemoveFontResourceEx{#A}@gdi32.dll stdcall';

procedure InitializeWizard();
begin
if not FontExists('{#FontName}') then
begin
ExtractTemporaryFile('{#Font}');
AddFontResource(ExpandConstant('{tmp}\{#Font}'), FR_PRIVATE, 0);
end;
WizardForm.Font.Name := '{#FontName}';
end;

procedure DeinitializeSetup();
begin
RemoveFontResource(ExpandConstant('{tmp}\{#Font}'), FR_PRIVATE, 0);
WizardForm.Free;
end;
Автор: boss911
Дата сообщения: 11.09.2012 10:44
[more=Код]
Код: var
StartMenuValue: string;

procedure CurStepChanged(CurStep: TSetupStep);
begin
if (CurStep = ssPostInstall) and (IsTaskSelected('RegistrMaxthon') = False) then
SHChangeNotify(SHCNE_ASSOCCHANGED, SHCNF_IDLIST, 0, 0);

if CurStep = ssDone then
RegDeleteKeyIncludingSubkeys(HKLM, 'SOFTWARE\Clients\StartMenuInternet\Maxthon.exe');

if (CurStep = ssInstall) and IsTaskSelected('RegistrMaxthon') then
RegQueryStringValue(HKCU, 'Software\Clients\StartMenuInternet', '', StartMenuValue);
if CurStep = ssDone then
begin
if IsTaskSelected('RegistrMaxthon') then
RegWriteStringValue(HKCU, 'Software\Clients\StartMenuInternet', '', StartMenuValue);
if StartMenuValue <> '' then else
RegWriteStringValue(HKCU, 'Software\Clients\StartMenuInternet', '', 'IEXPLORE.EXE');

end;
Автор: Genri
Дата сообщения: 11.09.2012 12:25
Nuclear_glare -- #define FontName "Monotype Corsiva"
Автор: Nuclear_glare
Дата сообщения: 11.09.2012 13:17
Genri
Ммм спасибо, все получилось!
Автор: Serega0675
Дата сообщения: 11.09.2012 15:39
Всем привет!
boss911, накидал [more=функцию]

Код:
function CompareWindowsVersion(const Version: TWindowsVersion; WinVer: string): Integer;
{
Данная функция сравнивает версию Windows указанную в Version с версией указанной в WinVer
Возвращаемые значения:
-2: ошибка при разборе строки WinVer, т.е. формат задан не правильно;
-1: Version < WinVer;
0: Version = WinVer;
1: Version > WinVer;
}
var
value, ver, sp: string;
pos_simbol, count: Integer;
Major, Minor, Build, ServicePack: Integer;
parse: Boolean;
begin
Result := -2;
parse := False;
if WinVer <> '' then
try
count := 0;
ServicePack := 0;
value := WinVer;
while value <> '' do
begin
pos_simbol := Pos('.', value);
case pos_simbol > 0 of
True :
begin
ver := Copy(value, 1, pos_simbol - 1);
Delete(value, 1, pos_simbol);
end;
False:
begin
ver := value;
SetLength(value, 0);
end;
end;
count := count + 1;
case count of
1: // Major
case Length(ver) = 1 of
True : Major := StrToInt(ver);
False: Exit;
end;
2, 3: // Minor and Build
begin
pos_simbol := Pos('sp', LowerCase(ver));
case pos_simbol > 0 of
True :
begin
sp := Copy(ver, pos_simbol + 2, Length(ver) - pos_simbol - 1);
SetLength(ver, pos_simbol-1);
case count of
2: Minor := StrToInt(ver);
3: Build := StrToInt(ver);
end;
ServicePack := StrToInt(sp);
end;
False:
case count of
2: Minor := StrToInt(ver);
3: Build := StrToInt(ver);
end;
end;
end;
end;
end;
parse := True;
except
Exit;
end;
if parse then
begin
case Version.Major = Major of
True :
case Version.Minor = Minor of
True :
case Version.Build = Build of
True :
case ServicePack = 0 of
True : Result := 0;
False:
case Version.ServicePackMajor = ServicePack of
True : Result := 0;
False:
case Version.ServicePackMajor > ServicePack of
True : Result := 1;
False: Result := -1;
end;
end;
end;
False:
case Version.Build > Build of
True : Result := 1;
False: Result := -1;
end;
end;
False:
case Version.Minor > Minor of
True : Result := 1;
False: Result := -1;
end;
end;
False:
case Version.Major > Major of
True : Result := 1;
False: Result := -1;
end;
end;
end;
end;

function CheckMinAndOnlyBelowVersion(const MinVersion, OnlyBelowVersion: string): Boolean;
{ Пример: CheckMinAndOnlyBelowVersion('5.1', '6.0');
Функция вернёт True, если версия системы не менее заданных
параметров в MinVersion и менее чем в OnlyBelowVersion.

Обрабатываемые форматы записей для MinVersion и OnlyBelowVersion:
5.0
5.0.2195
5.0sp4
5.0.2195sp4
, где sp4 - версия пакета обновления.

Памятка из Справки:
5.0.2195 Windows 2000
5.1.2600 Windows XP или Windows XP 64-Bit Edition Version 2002 (Itanium)
5.2.3790 Windows Server 2003 или Windows XP x64 Edition (AMD64/EM64T)
или Windows XP 64-Bit Edition Version 2003 (Itanium)
6.0.6000 Windows Vista
6.0.6001 Windows Vista с Service Pack 1 или Windows Server 2008
6.1.7600 Windows 7 или Windows Server 2008 R2
6.1.7601 Windows 7 с Service Pack 1 или Windows Server 2008 R2 с Service Pack 1
6.2.8400 Windows 8 Release Preview

Обычно нет необходимости определить номера сборки (то есть, можно просто использовать "5.1" для Windows XP).
}
var
Version: TWindowsVersion;
begin
GetWindowsVersionEx(Version);
Result := (CompareWindowsVersion(Version, MinVersion) >= 0) and
(CompareWindowsVersion(Version, OnlyBelowVersion) = -1);
end;
Автор: Hell_Dog2011
Дата сообщения: 11.09.2012 17:57
innonewbie
спасибо большое
Автор: MOD_TEC
Дата сообщения: 12.09.2012 08:15
Как наложить кнопки свернуть и закрыть через ботву...Подскажите кто знает...
http://forum.oszone.net/attachment.php?attachmentid=87410&d=1347426130
Автор: Genri
Дата сообщения: 12.09.2012 09:10
Serega0675

Цитата:
CheckMinAndOnlyBelowVersion
-- так же есть и штатная функция:
function InstallOnThisVersion(const MinVersion, OnlyBelowVersion: String): Integer;
Автор: Serega0675
Дата сообщения: 12.09.2012 17:44
Genri,
Цитата:
так же есть и штатная функция:

, согласен, чаще надо заглядывать в справку, тогда не пришлось бы в очередной раз изобретать велосипед ... с другой стороны разминка для мозгов полезна
Автор: MOD_TEC
Дата сообщения: 12.09.2012 21:27
Как можно решить проблему с текструированной кнопкой отмена через ботву... Дело в том, что когда я переключаю на ssPostInstall
невозможно отменить установку...
Автор: Nuclear_glare
Дата сообщения: 13.09.2012 14:07
if (CurPageID = wpSelectTasks) then
WizardForm.NextButton.Caption:=Установить

Ребят, можете помочь? Не работает кусочек (ну, потому что писал сам наверное )

P.S. Идея была сменить слово "Далее >" на слово "Установить".
Автор: vint56
Дата сообщения: 13.09.2012 14:49
Nuclear_glare
procedure CurPageChanged(CurPageID: Integer);
begin
if CurPageID = wpSelectTasks then
begin
If WizardForm.FindComponent('NextButton') is TButton then
TButton(WizardForm.FindComponent('NextButton')).Caption:='Установить';
end
end;
Автор: Nuclear_glare
Дата сообщения: 13.09.2012 14:55
vint56
Благодарствую, теперь все заработало x 300
Автор: Gnom3
Дата сообщения: 14.09.2012 13:18
Перезалил сборку InnoUltra. Исправлен косяк с Default.isl - английский был от версии 5.4.х
Автор: MOD_TEC
Дата сообщения: 15.09.2012 09:49
Как сделать такие края через ботву...Если можно пример...Заранее спасибо...
http://forum.oszone.net/attachment.php?attachmentid=87566&d=1347691327
Автор: pshaklein
Дата сообщения: 16.09.2012 14:27
MOD_TEC
На нормальном хостинге выкладывайте изображение, где не нужна авторизация.
Автор: MOD_TEC
Дата сообщения: 16.09.2012 21:21
Как сделать вот такую панель...Чтобы при нажатии на кнопку сбоку выезжала панель управления музыкой заранее спасибо...
http://forum.oszone.net/attachment.php?attachmentid=87636&d=1347819631
Автор: YURSHAT
Дата сообщения: 17.09.2012 02:42
MOD_TEC, ты хоть одну строчку в своем скрипте САМ напишешь? Может начнешь использовать поиск, а также скачивать и разбирать примеры? Может пора уже начинать думать и пытатся хоть что-то написать самому?
Автор: MOD_TEC
Дата сообщения: 17.09.2012 08:30
YURSHAT
Спасибо за совет
Автор: pshaklein
Дата сообщения: 18.09.2012 21:22
(del)
Автор: pshaklein
Дата сообщения: 19.09.2012 10:52
(del)
Автор: MOD_TEC
Дата сообщения: 19.09.2012 12:49
Как сделать деинсталятор в стиле инсталлятора на ботве.. На примере скрипта L.A. Noire.
Подскажите пожалуйста, пробовал не получается.
Автор: Hell_Dog2011
Дата сообщения: 21.09.2012 18:18
подскажите плизз где менять цвет инсталятора и текст в нём за основу взят вот этот Need for Speed™ Undercover.iss v 2.4c [Final] [?] от YURSHAT скрипт.
Автор: GDDR7
Дата сообщения: 22.09.2012 11:15
Добрый день, подскажите где можно скачать такой скрипт http://repacks.org.ua/inno-setup/skripty/226-prostoy-skript-max-payne-3.html , а то файл удалён в раздаче.

Страницы: 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177

Предыдущая тема: поиск


Форум Ru-Board.club — поднят 15-09-2016 числа. Цель - сохранить наследие старого Ru-Board, истории становления российского интернета. Сделано для людей.