2011-12-08 84 views

回答

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 '[email protected] cdecl'; 
+0

是的,但我試圖調用函數,但inno安裝程序崩潰 - 第一篇文章中更新的代碼。 – user830054

+1

什麼類型的消息崩潰? –

+0

由於我的代碼是異常錯誤,因此使用此代碼的編譯器會說:未知類型'HRESULT' – user830054

0

我不會在一個安裝程序中使用這種方法,但如果你真的需要它,我會開發它在Delphi中,有一個簡單的API包裝在一個DLL,並呼籲從InnoSetup該DLL。

相關問題