Jump to content
Korean Random
EvilAlex

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

Recommended Posts

WindowsHook.

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

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

Нет такого.

Но сделать, в принципе, можно. За основу взять тот же пример.

ясно, буду пробовать  

Share this post


Link to post

Short link
Share on other sites

Здравствуйте! Подскажите как сделать так чтоб мод пак не могли распаковать? Например модпак Джова 0.9.0 можно (не помю как правильно это сказать, вроде ДЕКОМПИЛИРОВАТЬ), а про танки того же патча нельзя.

 Не ругайте если фигню сморозил. Я в этом деле часов 20 только. Пытаюсь разобраться и много еще не знаю. Заранее спасибо. 

Share this post


Link to post

Short link
Share on other sites
используйте расширенную версию компилятора

 А не подскажите куда тыкать и что написать чтоб защитить от распаковки?

Edited by licimer

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

Если включить шифрование, то при установке пользователь должен будет ввести пароль. Это полезно, если программа предназначена для ограниченного круга лиц; для всяких сборок\модПаков это не удобно.

Я не о том. Я про защиту скрипта. В принципе уже нашел на 10й странице. Пост 189. Но все же как говорит гугл такую защиту ломают. 

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

Еще подскажите как сделать две кнопки (или 3-4-5..). Где лого. Например мне надо ссыль на ВК, ютуб ну и на форум например.

'скрин'

OdMIoGjUpHc.jpg
рядом еще надо вк добавить.

 

 

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

Share this post


Link to post

Short link
Share on other sites

Я не о том. Я про защиту скрипта. В принципе уже нашел на 10й странице. Пост 189. Но все же как говорит гугл такую защиту ломают. 

тут просто код проще и идет пропуск страницы ввода пароля 

 

Еще подскажите как сделать две кнопки (или 3-4-5..). Где лого. Например мне надо ссыль на ВК, ютуб ну и на форум например.

 

Типо такого

[Setup]
AppName=My Application
AppVersion=1.5
DefaultDirName={pf}\My Application
[Files]
DestName: "Image.bmp"; Source: "Button.bmp"; Flags: dontcopy solidbreak
[Code]
procedure xvmOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://www.modxvm.com/', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;
//""""""""""""""""""""""""""""""""""""""""""""""//
procedure faqOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://goo.gl/zTjTsg', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;
//""""""""""""""""""""""""""""""""""""""""""""""//
procedure vkOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'https://vk.com/ekspointwot', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;
//""""""""""""""""""""""""""""""""""""""""""""""//
procedure ForumOnClick(Sender: TObject);
var
  ErrorCode: Integer;
begin
  ShellExec('open', 'http://goo.gl/yA2LUZ', '', '', SW_SHOWNORMAL, ewNoWait, ErrorCode)
end;
//""""""""""""""""""""""""""""""""""""""""""""""//
var
  BitmapImage1: TBitmapImage;
  BitmapImage2: TBitmapImage;
  BitmapImage3: TBitmapImage;

procedure RedesignWizardForm;
begin
  ExtractTemporaryFile('Image.bmp');
  { BitmapImage1 }
  BitmapImage1 := TBitmapImage.Create(WizardForm);
  with BitmapImage1 do
  begin
    Parent := WizardForm;
    Left := ScaleX(8);
    Top := ScaleY(327);
    Width := ScaleX(41);
    Height := ScaleY(23);
    Cursor := crHand;
    OnClick := @xvmOnClick;
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image.bmp'));
  end;

  { BitmapImage2 }
  BitmapImage2 := TBitmapImage.Create(WizardForm);
  with BitmapImage2 do
  begin
    Parent := WizardForm;
    Left := ScaleX(64);
    Top := ScaleY(327);
    Width := ScaleX(41);
    Height := ScaleY(23);
    Cursor := crHand;
    OnClick := @faqOnClick;
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image.bmp'));
  end;

  { BitmapImage3 }
  BitmapImage3 := TBitmapImage.Create(WizardForm);
  with BitmapImage3 do
  begin
    Parent := WizardForm;
    Left := ScaleX(120);
    Top := ScaleY(327);
    Width := ScaleX(41);
    Height := ScaleY(23);
    Cursor := crHand;
    OnClick := @ForumOnClick;
    Bitmap.LoadFromFile(ExpandConstant('{tmp}\Image.bmp'));
  end;
end;
procedure InitializeWizard();
begin
  RedesignWizardForm;
end; 

Edited by Dark_Knight_MiX

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\ISSkin.dll; Flags: dontcopy

Source: Files\1.cjstyles; Flags: dontcopy

блабла бла

 

procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:ISSkin.dll stdcall';

procedure UnloadSkin(); external 'UnloadSkin@files:ISSkin.dll stdcall';

function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall';

блабла бла

в конец(вставить как на видео):

 

 

 

function InitializeSetup(): Boolean;

begin

ExtractTemporaryFile('1.cjstyles');

LoadSkin(ExpandConstant('{tmp}\1.cjstyles'), '');

Result := True;

end;

 

 

но изменений никаких. в чем может быть проблема?

 

 

 

подскажите где глянуть инфу по запиливанию скрипта пожалуйста.

Share this post


Link to post

Short link
Share on other sites

Спасибо огромное за помощь. Еще вопрос (пардон за наглость), сколько искал не могу найти инфу как прицепить скин. точнее нашел такую

'вкратце так'

Пишу например

[Files]

Source: Files\ISSkin.dll; Flags: dontcopy

Source: Files\1.cjstyles; Flags: dontcopy

блабла бла

 

procedure LoadSkin(lpszPath: String; lpszIniFileName: String); external 'LoadSkin@files:ISSkin.dll stdcall';

procedure UnloadSkin(); external 'UnloadSkin@files:ISSkin.dll stdcall';

function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall';

блабла бла

в конец(вставить как на видео):

 

 

 

function InitializeSetup(): Boolean;

begin

ExtractTemporaryFile('1.cjstyles');

LoadSkin(ExpandConstant('{tmp}\1.cjstyles'), '');

Result := True;

end;

 

 

но изменений никаких. в чем может быть проблема?

 

 

 

подскажите где глянуть инфу по запиливанию скрипта пожалуйста.

#define SKinDll  "ISSkin.dll"
#define SKin     "скин.cjstyles"
#define Del      "uninstall"                        
[Files]
Source: скрипты инсталлятора\dll\{#SKinDll}; DestDir: {app}\{#MyAppName}\{#Del}; Flags: ignoreversion
Source: файлы модпака\{#SKin}; DestDir: {app}\{#MyAppName}\{#Del}; Flags: ignoreversion
[Code]
function ShowWindow(hWnd: Integer; uType: Integer): Integer; external '[email protected] stdcall';
procedure LoadSkin(lpszPath, lpszIniFileName: ansistring); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload setuponly';
procedure UnloadSkin(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload setuponly';
procedure LoadSkinU(lpszPath, lpszIniFileName: ansistring); external 'LoadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly';
procedure UnloadSkinU(); external 'UnloadSkin@{tmp}\{#SKinDll} stdcall delayload uninstallonly';
//"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""//
function InitializeSetup1(): Boolean;
begin
  ExtractTemporaryFile('{#SKinDll}');
  ExtractTemporaryFile('{#SKin}');
  LoadSkin(ExpandConstant('{tmp}\{#SKin}'), '');
  Result:=True;
end;
//"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""//
procedure DeinitializeSetup4();
begin
  UnloadSkin;
end;
//"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""//
function InitializeUninstall1(): Boolean;
begin
  FileCopy(ExpandConstant('{app}\{#MyAppName}\{#Del}\{#SKinDll}'), ExpandConstant('{tmp}\{#SKinDll}'), False);
  FileCopy(ExpandConstant('{app}\{#MyAppName}\{#Del}\{#SKin}'), ExpandConstant('{tmp}\{#SKin}'), False);
  LoadSkinU(ExpandConstant('{tmp}\{#SKin}'), '');
  Result:=True;
end;
//"""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""""//
procedure DeinitializeUninstall1();
begin
UnloadSkinU;
end; 

Share this post


Link to post

Short link
Share on other sites

Еще вопрос (пардон за наглость), сколько искал не могу найти инфу как прицепить скин

Из стандартных примеров: IsSkinEx.rar

 

Upd: поправил работу при деинсталляции.

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

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