Jump to content
Korean Random
EvilAlex

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

Recommended Posts

А точнее: "вот часть кода".

Проблема не в этом куске. Т.к. вижу подключаемый скрипт скина, то полагаю, что в нём скорее всего и проблема.

спасибо, без скина все работает ))) а что все скины так косячат или есть рабочии скины ???

 

или может в коде скин что то не так ??

 

[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;

 

 

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

 

а по поводу музыки что то сделать можно ??? 

Edited by MS_RAMIS

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

 

 

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

Share this post


Link to post

Short link
Share on other sites

код скин писал уже выше, вот еще раз

[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;

могу еще и файлы isskin.dll и дать skin.cjstyles если нужно  Edited by MS_RAMIS

Share this post


Link to post

Short link
Share on other sites

@MS_RAMIS, должно быть так:

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

[Code]
procedure LoadSkin(lpszPath: PAnsiChar; lpszIniFileName: PAnsiChar); external 'LoadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UnloadSkin; external 'UnloadSkin@{tmp}\isskin.dll stdcall delayload';
procedure UninstLoadSkin(lpszPath: string; lpszIniFileName: string); external 'LoadSkin@{app}\ISSkin.dll stdcall uninstallonly';
procedure UninstUnloadSkin(); external 'UnloadSkin@{app}\ISSkin.dll stdcall uninstallonly';
function ShowWindow(hWnd: HWND; nCmdShow: Integer): BOOL; external '[email protected] stdcall';

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;

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

Function InitializeUninstall(): Boolean;
begin
 Result := True;
 UninstLoadSkin(ExpandConstant('{app}\skin.cjstyles'), ''); 
end;

Procedure DeinitializeUninstall();
begin
 UninstUnloadSkin();
 UnloadDLL(ExpandConstant('{app}\ISSkin.dll'));
 DeleteFile(ExpandConstant('{app}\ISSkin.dll'));
 DeleteFile(ExpandConstant('{app}\skin.cjstyles'));
end;

Edited by Kotyarko_O
  • Upvote 1

Share this post


Link to post

Short link
Share on other sites

выдает ошибку 

Такую мелочь и сам мог исправить.

з.ы. подправил пример выше.

Share this post


Link to post

Short link
Share on other sites

Кто что думает по этому поводу?

post-8756-0-76319200-1440450450_thumb.png

У меня и у многих других всё нормально отображает

Edited by -zav-

Share this post


Link to post

Short link
Share on other sites

Кто что думает по этому поводу?

Кодировка. Обычно такое у пользователей с другой ОС... типа Европейцев.

Осмелюсь предположить, что используется языковой пакет или кастом месседж? Кодировку там проверяйте.

Edited by Yusha

Share this post


Link to post

Short link
Share on other sites

 

 

Кто что думает по этому поводу?
Собран на юникоде?

Share this post


Link to post

Short link
Share on other sites

Собран на юникоде?

Сам инно - юникод расширенный. Файл  test.iss  был в двух вариантах, на кириллице  и UTF-8 ,  в обоих случаях именно у этого товарища кракозябры.

Говорит что винда 8  рус

Edited by -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

Кто что думает по этому поводу?

В [CustomMessages] прописываешь? Или сразу в коде?

Share this post


Link to post

Short link
Share on other sites

В [CustomMessages] прописываешь? Или сразу в коде?

В коде.   Вопрос решился. У этого товарища всё таки европейская винда оказалась. Переключил на русский для программ и всё нормально стало.

Share this post


Link to post

Short link
Share on other sites

В коде.   Вопрос решился. У этого товарища всё таки европейская винда оказалась. Переключил на русский для программ и всё нормально стало.

По-хорошему нужно все фразы в коде прописать в [CustomMessages], тогда такой проблемы не будет.

Share this post


Link to post

Short link
Share on other sites

 

 

Обычно такое у пользователей с другой ОС... типа Европейцев

 

 

Вопрос решился. У этого товарища всё таки европейская винда оказалась
 

 

"О" - опыт.  :ok:

Но вы нашли причину, но не устранили ее.

Share this post


Link to post

Short link
Share on other sites

 

 

"О" - опыт.  :ok:

Но вы нашли причину, но не устранили ее.

 

И как я её могу устранить? Подскажите.

Share this post


Link to post

Short link
Share on other sites

И как я её могу устранить? Подскажите.

 

 

По-хорошему нужно все фразы в коде прописать в [CustomMessages], тогда такой проблемы не будет.

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