Inno setup / pascal脚本 - 有没有办法使用Aero(dwmapi)?

时间:2011-12-08 16:54:46

标签: delphi inno-setup

我想使用aero表单构建自定义设置,但我不知道如何启动它。 有没有办法在创建设置时使用DWM API?

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

3 个答案:

答案 0 :(得分:2)

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 :(得分:1)

您可以使用第三方工具ISSkin进行创新设置

http://isskin.codejock.com/

希望这会有所帮助

答案 2 :(得分:0)

我不会在安装程序中使用这样的方法,但是如果你确实需要它,我会在Delphi中开发它,用简单的API将它包装在DLL中,并从InnoSetup调用该DLL。