Jump to content
Korean Random
EvilAlex

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

Recommended Posts

А можно в деинсталляцию реализовать музыку? Типо такого "не удаляй меня!!:)"

Можно, но на хрен оно нужно?

Share this post


Link to post

Short link
Share on other sites

Можно, но на хрен оно нужно?

что бы весело удаляли

У меня тот же вопрос :gg:

:glare:

Share this post


Link to post

Short link
Share on other sites
что бы весело удаляли

Делается по типу того, как и в визарде. Только в визарде используются: IniializeSetup, InitializeWizard, DeinitializeSetup; а в деинсталляции будут: InitializeUninstall, InitializeUninstallProgressForm, DeinitializeUninstall соответственно.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Делается по типу того, как и в визарде. Только в визарде используются: IniializeSetup, InitializeWizard, DeinitializeSetup; а в деинсталляции будут: InitializeUninstall, InitializeUninstallProgressForm, DeinitializeUninstall соответственно.

понял

Share this post


Link to post

Short link
Share on other sites

понял

А ещё библиотеку проигрывания (вроде, с самой музыкой) надо будет хранить в папке с деинсталлятором. В общем, так же запихнуть эти файлы в деинсталлятор, как это делается с инсталлятором, не выйдет.

 

Так что преимуществ у этой идеи нет. Одни недостатки (хранение лишних документов в папке - лишний мусор, никто и не оценит, никому и не интересно, лишний код), реализация того не стоит.

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

А ещё библиотеку проигрывания (вроде, с самой музыкой) надо будет хранить в папке с деинсталлятором. В общем, так же запихнуть эти файлы в деинсталлятор, как это делается с инсталлятором, не выйдет.

 

Так что преимуществ у этой идеи нет. Одни недостатки (хранение лишних документов в папке - лишний мусор, никто и не оценит, никому и не интересно, лишний код), реализация того не стоит.

я так ради интереса попробую :)

Share this post


Link to post

Short link
Share on other sites

"Ради интереса" это делается копированием куска кода и заменой названий процедур - всё.

 

Толку от этого? (с)

Share this post


Link to post

Short link
Share on other sites
"Ради интереса" это делается копированием куска кода и заменой названий процедур - всё.

Разве всё?

Мне казалось, что потребуются внешние файлы (библиотека для проигрывания и сама музыка). Деинсталлятор не кушает секцию [Files] или я ошибаюсь?

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

Деинсталлятор не кушает секцию [Files] или я ошибаюсь?

не кушает

Share this post


Link to post

Short link
Share on other sites

Ладно-ладно, есть нюансы, но они минимальны.

Ну никто и не говорит, что это трудно в реализации. Просто это не нужно никому.

Share this post


Link to post

Short link
Share on other sites

из за чего может быть?

40 сек пройдет и вылет

post-24406-0-08988400-1421316209_thumb.png

Edited by ♫♫♫Dark_Knight_MiX♫♫♫

Share this post


Link to post

Short link
Share on other sites

Подскажите как впихнуть ссылку вида   <a href="длииииииинная ссылка">ссылка</a>

вот сюда:

procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_SYSCOMMAND then
if Msg.wParam = Menu.Handle then
MessageBox(WizardForm.Handle, 'bla-bla-bla' +#13+ 'ССЫЛКА','О программе', MB_ICONINFORMATION);
end;

тут кому надо весь пример по Замена меню "О программе"

[Setup]
AppName=My Program
AppVerName=My Program v 1.5
DefaultDirName={pf}\My Program
OutputDir=.
Compression=lzma/ultra
InternalCompressLevel=ultra
SolidCompression=yes
 
[Languages]
Name: russian; MessagesFile: compiler:Languages\Russian.isl
 
[_Code]
function AppendMenu(hMenu: HMENU; uFlags, uIDNewItem: UINT; lpNewItem:  PAnsiChar): BOOL; external '[email protected] stdcall';
function GetSystemMenu(hWnd: HWND; bRevert: BOOL): HMENU; external '[email protected] stdcall';
function MessageBox(hWnd: HWND; lpText, lpCaption: PAnsiChar; uType: LongWord): Integer;  external '[email protected] stdcall';
 
const
WM_SYSCOMMAND = $0112;
MF_DELETE = $200;
MF_SEPARATOR = $800;
MF_BYPOSITION = $400;
 
var
Menu: TMenuItem;
 
procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_SYSCOMMAND then
if Msg.wParam = Menu.Handle then
MessageBox(WizardForm.Handle,'bla-bla-bla','О программе', MB_ICONINFORMATION);
end;
 
procedure InitializeWizard();
begin
// попытаемя удалить родное меню 'О программе'
if not AppendMenu(GetSystemMenu(Wizardform.Handle, True), MF_DELETE, 0, SetupMessage(msgAboutSetupMenuItem)) then
WizardForm.Position:= poScreenCenter;
// создаём сепаратор
AppendMenu(GetSystemMenu(Wizardform.Handle, False), MF_SEPARATOR, 0, '');
Menu:= TMenuItem.Create(WizardForm); // создаём ссылку на менюшку
// добавляем свой пункт в системное меню 'О программе'
AppendMenu(GetSystemMenu(Wizardform.Handle, False), MF_BYPOSITION, Menu.Handle, SetupMessage(msgAboutSetupMenuItem));
Application.OnMessage:= @AppOnMessage;
end; 

Edited by -zav-

Share this post


Link to post

Short link
Share on other sites

Подскажите как впихнуть ссылку вида   <a href="длииииииинная ссылка">ссылка</a>

вот сюда:

procedure AppOnMessage(var Msg: TMsg; var Handled: Boolean);
begin
if Msg.message = WM_SYSCOMMAND then
if Msg.wParam = Menu.Handle then
MessageBox(WizardForm.Handle, 'bla-bla-bla' +#13+ 'ССЫЛКА','О программе', MB_ICONINFORMATION);
end;

Никак. Внутри мсджбокса ссылку не вставишь, нужно создавать форму, похожую на мсджбокс и делать с ней всё, что хочется.

 

из за чего может быть?

40 сек пройдет и вылет

Из-за чего-угодно. Постоянно одно и то же время проходит до вылета?

Edited by Kotyarko_O

Share this post


Link to post

Short link
Share on other sites

 

 

Никак. Внутри мсджбокса ссылку не вставишь, нужно создавать форму, похожую на мсджбокс и делать с ней всё, что хочется.

Пичалька. Для сообщалки "о программе" это будет слишком жирно разводить такую канитель ради ссылки...

Share this post


Link to post

Short link
Share on other sites

@-zav-, я сделал, но у меня там немного другое назначение. Изначально делал для интереса, а потом решил оставить.

Share this post


Link to post

Short link
Share on other sites

Никак. Внутри мсджбокса ссылку не вставишь, нужно создавать форму, похожую на мсджбокс и делать с ней всё, что хочется.

 

Из-за чего-угодно. Постоянно одно и то же время проходит до вылета?

да 

Share this post


Link to post

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...