Jump to content
Korean Random

Создание инсталляторов для модпаков на базе Inno Setup


Recommended Posts

StranikS_Scan, вообще это не интересует. Реализация интересует, а это нет. Но всегда приятно, когда есть благодарности. В любом виде.

+

Kotyarko_O, а я вот так сделал... :heh: Давно руки уже чесались.

 Подумал.. прописал кнопку "закрыть" и себе. (т.к. до этого туда вставлял свою бегающую флешку и выглядело не совсем так, как хотел).. а так норм)

Вот только текст тебе буквально на 10 вправо сдвинуть и будет ровно

Link to comment
Short link
Share on other sites

Как убрать выбор типа установки?

(Если такое в теме уже было - скажите примерно на какой странице)

attachicon.gifУстановка - MoD-Pack от mike_messi.jpg.jpg

ооо знакомые лица 

оставь только выборочную установку и все

Kotyarko_O, а я вот так сделал... :heh: Давно руки уже чесались.

c284c5e711e3.png

а скиньте мне этот код если не затруднит 

Link to comment
Short link
Share on other sites

StranikS_Scan, вообще это не интересует. Реализация интересует, а это нет. Но всегда приятно, когда есть благодарности. В любом виде.

 

 

а скиньте мне этот код если не затруднит 

 

Smile_popcorn1.gif

Link to comment
Short link
Share on other sites

Вот такая проблема:
Изменил skin.
Использовал этот script:

[Files]
Source: Files\skin.cjstyles; DestDir: {app}; Attribs: hidden system
Source: Files\ISSkin.dll; DestDir: {app}; Attribs: hidden system

[code]
procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';

function InitializeSetup: boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
  if not FileExists(ExpandConstant('{tmp}\skin.cjstyles')) then ExtractTemporaryFile('skin.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
  Result:=True;
end;

function InitializeUninstall: boolean;
begin
  FileCopy(ExpandConstant('{app}\uninstall\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), False);
  FileCopy(ExpandConstant('{app}\uninstall\skin.cjstyles'), ExpandConstant('{tmp}\skin.cjstyles'), False);
  LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
  Result:=True;
end;

Стало хорошо, но после попытки Uninstall мод пакет, дает эту ошибку и не удаляет пакета:

post-21711-0-55665900-1407655108_thumb.png

 

А ето мой основной:

projekt_mpmp.zip

 

Link to comment
Short link
Share on other sites

Ребята помогите пожалуйста! Собираю модпак с пакетом Р-mod. Распределил все файлы пакета по папкам, чтобы в меню выбора модпака каждый модуль от P-mod были отдельными пунктами. Вот скрин

 

5ae74387491709f34c9cf5863b42229b.jpg

 

Так дело в том, что если в основном конфиге я указал моды какие нужны, а при выборе в установщике не выбрать хотя бы один пункт от p-mod, то уже мод не работает. То есть отдельными пунктами вывести вывел, но нужно все эти пункты выбирать чтобы п-мод работал. Как сделать так, чтобы мод работал и без соответствующих пунктов, но которые в конфиге прописаны!

Например я не играю с пунктом no-scroll, когда его не выбираю, то все остальные пункты уже не работают, так как no-scroll в основном конфиге включенный.

 

Kotyarko_O

У тебя это реализовано как-то, помоги пожалуйста, скачал твой модпак и попробовал установить пряники р-mod отдельно, все у тебя работает.

Помогите чайнику :ok:


Вот я нуууп :heh: :heh: :heh: :heh:

Сначала надо ведь копировать п-мод с отключенными конфигами, потом просто их заменять на включенные, тогда не выбранные пункты остаются не включенными а п-мод работает!

Edited by Metrix647
Link to comment
Short link
Share on other sites

Вот такая проблема:

Изменил skin.

Использовал этот script:

[Files]
Source: Files\skin.cjstyles;  Flags: ignoreversion dontcopy;
Source: Files\ISSkin.dll;  Flags: ignoreversion dontcopy nocompression

[code]
procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';

function InitializeSetup1: boolean;
begin
  if not FileExists(ExpandConstant('{tmp}\isskin.dll')) then ExtractTemporaryFile('isskin.dll');
  if not FileExists(ExpandConstant('{tmp}\skin.cjstyles')) then ExtractTemporaryFile('skin.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
  Result:=True;
end;

function InitializeUninstall: boolean;
begin
  FileCopy(ExpandConstant('{app}\uninstall\isskin.dll'), ExpandConstant('{tmp}\isskin.dll'), False);
  FileCopy(ExpandConstant('{app}\uninstall\skin.cjstyles'), ExpandConstant('{tmp}\skin.cjstyles'), False);
  LoadSkin(ExpandConstant('{tmp}\skin.cjstyles'), '');
  Result:=True;
end;
Стало хорошо, но после попытки Uninstall мод пакет, дает эту ошибку и не удаляет пакета:error.png

 

 

А ето мой основной:

attachicon.gifprojekt_mpmp.zip

вот я изменил 

а тут вот так сделай 

Edited by Ekspoint
Link to comment
Short link
Share on other sites

mpmp, поверь ты мне: скина хватает и для одного окна установки, для деинсталлятора его прикручивать нет никакого смысла. Это как мёртвому припарка.

 

#ifdef UNICODE
    #define A "U"
#else
    #define A "A"
#endif

[Setup]
AppName=ISSkin Example
AppVersion=1.0.0.0
DefaultDirName={pf}\ISSkin

[Files]
Source: "Embedded\ISSkinEx{#A}.dll"; DestDir: "{tmp}"; Flags: dontcopy;
Source: "Embedded\Skin.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy;

[~~~~~~~~~~~если ты хоть что-то соображаешь, то поймёшь что надо с этим делать~~~~~~~~~~~Code~~~~~~~~~~~если ты хоть что-то соображаешь, то поймёшь что надо с этим делать~~~~~~~~~~~]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskinex{#A}.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskinex{#A}.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall';

function InitializeSetup(): Boolean;
begin
  ExtractTemporaryFile('Skin.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\Skin.cjstyles'), 'NormalBlack.ini');
  Result:=True;
end;

procedure DeinitializeSetup();
begin
  ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
  UnloadSkin();
end;

ISSkinEx.rar

  • Upvote 1
Link to comment
Short link
Share on other sites

Сначала надо ведь копировать п-мод с отключенными конфигами, потом просто их заменять на включенные, тогда не выбранные пункты остаются не включенными а п-мод работает!

Именно :)

 

Как убрать выбор типа установки?

(Если такое в теме уже было - скажите примерно на какой странице)

Удали секцию [Types].

Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

Ребята! Вот добавил я картинки на прицелы, откомпелировал. А при выборе прицела установщик зависает, потом как бы картинка загружается и отвисает. Из-за чего так? Картинки большие? хотя максимум картинка весит 450 кб

Link to comment
Short link
Share on other sites

Ребята! Вот добавил я картинки на прицелы, откомпелировал. А при выборе прицела установщик зависает, потом как бы картинка загружается и отвисает. Из-за чего так? Картинки большие? хотя максимум картинка весит 450 кб

Убавь сжатие инсталла.

Link to comment
Short link
Share on other sites

mpmp, поверь ты мне: скина хватает и для одного окна установки, для деинсталлятора его прикручивать нет никакого смысла. Это как мёртвому припарка.

 

#ifdef UNICODE
    #define A "U"
#else
    #define A "A"
#endif

[Setup]
AppName=ISSkin Example
AppVersion=1.0.0.0
DefaultDirName={pf}\ISSkin

[Files]
Source: "Embedded\ISSkinEx{#A}.dll"; DestDir: "{tmp}"; Flags: dontcopy;
Source: "Embedded\Skin.cjstyles"; DestDir: "{tmp}"; Flags: dontcopy;

[~~~~~~~~~~~если ты хоть что-то соображаешь, то поймёшь что надо с этим делать~~~~~~~~~~~Code~~~~~~~~~~~если ты хоть что-то соображаешь, то поймёшь что надо с этим делать~~~~~~~~~~~]
procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:isskinex{#A}.dll stdcall';
procedure UnloadSkin(); external 'UnloadSkin@files:isskinex{#A}.dll stdcall';
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall';

function InitializeSetup(): Boolean;
begin
  ExtractTemporaryFile('Skin.cjstyles');
  LoadSkin(ExpandConstant('{tmp}\Skin.cjstyles'), 'NormalBlack.ini');
  Result:=True;
end;

procedure DeinitializeSetup();
begin
  ShowWindow(StrToInt(ExpandConstant('{wizardhwnd}')), 0);
  UnloadSkin();
end;

Правильно, скин для деинсталла бесполезен, Вы бы mpmp, ещё целую программу для деисталляции впилили;)

Edited by Darksoul
  • Upvote 1
Link to comment
Short link
Share on other sites

вот что выдает

Слэш вправо впиши, моя очепятка.

 

З.ы. почему у всех скрипт имеет такой же вид, что и в примере от @EvilAlex в шапке? Ребята, вам не стыдно? :heh:

Edited by Kotyarko_O
Link to comment
Short link
Share on other sites

 

 

Слэш вправо впиши, моя очепятка.

Да, справку открыл посмотрел, увидел)) Спасибо!


 

 

З.ы. почему у всех скрипт имеет такой же вид, что и в примере от EvilAlex в шапке? Ребята, вам не стыдно? :heh:

Зачем изобретать велосипед? :heh:

З.Ы А как предлагаешь? Я новичок в этом деле, поэтому пока не в теме

Link to comment
Short link
Share on other sites

Кстати вот вопрос у меня - а чего не используете SFX архив с кастомизированным окном для сжатия всего инсталятора, вместо того чтобы сжимать ресуры внутри инсталла. Это ведь не удобно да и качество сжатия всегда хуже.

 

Многие же так делают

 

У них типа запускаешь exe а появляется окно SFX-распаковки оно автоматически распаковывает в тепм инсталлятор и сама его и запускает... все же сто раз видели.

Edited by StranikS_Scan
Link to comment
Short link
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...