Inno setup / pascal scripting - есть ли способ использовать Aero (dwmapi)? - PullRequest
0 голосов
/ 08 декабря 2011

Я хотел бы создать пользовательскую настройку с аэроформой, но я не знаю, как ее запустить. Есть ли способ использовать DWM API с настройкой inno?

function dwm(Wnd: HWnd; cxLeftWidth, cxRightWidth, cyTopHeight, cyBottomHeight: integer ): Longint; external 'DwmExtendFrameIntoClientArea@dwmapi.dll stdcall';

Ответы [ 3 ]

2 голосов
/ 08 декабря 2011

DWM API - это собственный API, поэтому вы можете получить к нему доступ, используя DLL Import method .

Затем вы можете вызывать функции API в своем коде скрипта.

Но я бы рекомендовал не делать этого. Поскольку DWM работает только в Vista или новее, его можно отключить, остановив службу NT. Это может помешать вашей установке работать на машине, на которой она была разработана.

Теперь, когда вы разместили свой код ...

Оригинальная декларация API, которую вы разместили.

HRESULT WINAPI DwmExtendFrameIntoClientArea(
  HWND hWnd,
  __in  const MARGINS *pMarInset
);

Мое лучшее предположение, что это должно выглядеть так.

type
  Margins = record
    cxLeftWidth : Integer;
    cxRightWidth: Integer;
    cyTopHeight: Integer;
    cyBottomHeight: Integer;
  end;

function DwmExtendFrameIntoClientArea(Wnd: HWnd;
                                      var pMarInset : MARGINS) : 
                                 HRESULT; 
          external 'DwmExtendFrameIntoClientArea@dwmapi.dll cdecl';
1 голос
/ 08 декабря 2011

вы можете использовать сторонний инструмент ISSkin для настройки inno

http://isskin.codejock.com/

надеюсь, это поможет

0 голосов
/ 22 декабря 2011

Я бы не использовал такой подход в программе установки, но если вам он действительно нужен, я разработал бы его в Delphi, обернул в DLL с более простым API и вызвал бы эту DLL из InnoSetup.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...