Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  

Показать сообщение отдельно
MKN MKN вне форума

Ветеран


Сообщения: 2205
Благодарности: 498

Профиль | Отправить PM | Цитировать


Оказывается, умельцы с форума winamp.com смогли приспособить известную в Inno Setup, оформительскую botva2.dll для NSIS.
Примечательно, что для оформления, к примеру, кнопки, код занимает по сути, всего одну строку ! В отличии от загородки из кучи кода в NSIS...
Код: Выделить весь код
!include "MUI2.nsh"

Page custom custom.Create
!insertmacro MUI_LANGUAGE "English"

OutFile Test_botva2dll.exe

Function custom.Create
    nsDialogs::Create 1018
    Pop $0
    InitPluginsDir
    File /oname=$PLUGINSDIR\botva2.dll botva2.dll
    File /oname=$PLUGINSDIR\Google.png Google.png
    System::Call "botva2::BtnCreate(ir0,i0,i0,i157,i15,t'$PLUGINSDIR\Google.png',i0,i0)i.R0"
    nsDialogs::Show
FunctionEnd

/*
    ;Functions declaration in Inno Setup Script
    botva2::BtnCreate(hParent:HWND; Left,Top,Width,Height:integer; FileName:PAnsiChar; ShadowWidth:integer; IsCheckBtn:boolean):HWND;
    botva2::BtnGetChecked(h:HWND):boolean;
    botva2::BtnGetEnabled(h:HWND):boolean;
    botva2::BtnGetPosition
    botva2::BtnGetText
    botva2::BtnGetVisibility
    botva2::BtnRefresh(h:HWND);
    botva2::BtnSetChecked(h:HWND; Value:boolean);
    botva2::BtnSetCursor(h:HWND; hCur:Cardinal);
    botva2::BtnSetEnabled(h:HWND; Value:boolean);
    botva2::BtnSetEvent(h:HWND; EventID:integer; Event:Longword);
    botva2::BtnSetFont(h:HWND; Font:Cardinal);
    botva2::BtnSetFontColor(h:HWND; NormalFontColor, FocusedFontColor, PressedFontColor, DisabledFontColor: Cardinal);
    botva2::BtnSetPosition(h:HWND; NewLeft, NewTop, NewWidth, NewHeight: integer);
    botva2::BtnSetText(h:HWND; Text:PAnsiChar);
    botva2::BtnSetTextAlignment(h:HWND; HorIndent, VertIndent:integer; Alignment:DWORD);
    botva2::BtnSetVisibility(h:HWND; Value:boolean);
    botva2::GetSysCursorHandle(id:integer):Cardinal;
    botva2::ImgApplyChanges(h:HWND);
    botva2::ImgGetVisibility(img:Longint):boolean;
    botva2::ImgLoad(Wnd :HWND; FileName :PAnsiChar; Left, Top, Width, Height :integer; Stretch, IsBkg :boolean) :Longint;
    botva2::ImgRelease(img :Longint);
    botva2::ImgSetPosition(img :Longint; NewLeft, NewTop, NewWidth, NewHeight :integer);
    botva2::ImgSetVisibility(img :Longint; Visible :boolean);
    botva2::gdipShutdown();
*/

Section
SectionEnd
Как бы использовать ВСЕ возможности этой DLL в NSIS ? Тут нужны спецы по API... Может помогут расшифровать эту DLL и показать на примерах её прочие возможности...

И , конечно здорово было бы иметь подобную DLL, заточенную конкретно под NSIS... Почему то никто до сих пор не сделал такой замечательной полезности ...

Последний раз редактировалось MKN, 13-03-2015 в 11:29.


Отправлено: 10:35, 15-12-2012 | #37