Delphi Inno设置/pascal脚本-有没有任何方法可以使用Aero(dwmapi)?

Delphi Inno设置/pascal脚本-有没有任何方法可以使用Aero(dwmapi)?,delphi,inno-setup,Delphi,Inno Setup,我想建立一个自定义设置,与航空形式,但我不知道如何启动它。 有没有办法在inno设置中使用DWMAPI function dwm(Wnd: HWnd; cxLeftWidth, cxRightWidth, cyTopHeight, cyBottomHeight: integer ): Longint; external 'DwmExtendFrameIntoClientArea@dwmapi.dll stdcall'; 您可以使用第三方工具ISSkin进行inno设置 希望这对您有所帮助您可

我想建立一个自定义设置,与航空形式,但我不知道如何启动它。 有没有办法在inno设置中使用DWMAPI

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

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


希望这对您有所帮助

您可以使用第三方工具iSkin for inno安装


希望这对您有所帮助

DWMAPI是一个本机API,因此您可以使用

然后可以在脚本代码中调用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';

DWMAPI是一个本机API,因此您可以使用

然后可以在脚本代码中调用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';

我不会在安装程序中使用这种方法,但是如果你真的需要它,我会在Delphi中开发,用更简单的API封装在DLL中,然后从InnoSetup调用该DLL。

我不会在安装程序中使用这种方法,但如果你真的需要它,我会在Delphi中开发,用更简单的API封装在DLL中,从InnoSetup调用该DLL。

是的,但我试图调用该函数,但inno setup崩溃-第一篇文章中更新的代码。崩溃的消息类型是什么?我的代码是异常错误,编译器说:未知类型“HRESULT”,您可能需要升级到5.4.2中识别的InnoSetup的更高版本。是的,这就是问题所在,但现在无法识别何时需要应用:dwmextendframeintoclienterea(wizardform.handle,(0,0,50,0));是的,但我试图调用该函数,但inno setup崩溃-在第一篇文章中更新了代码。崩溃的消息类型是什么?我的代码是异常错误,编译器说:未知类型“HRESULT”,您可能需要升级到5.4.2认可的InnoSetup的更高版本。是的,这就是问题所在,但现在无法识别何时需要应用:dwmextendframeintoclienterea(wizardform.handle,(0,0,50,0));