2014-02-26 2 views
0

Im 설치를 위해 IndigoRose의 Set-Up Factory를 사용하고 있습니다. 설치 팩토리는 설치 프로그램의 스크립트 섹션에서 lua 언어를 사용합니다. 자, 일단 설치가 끝나면 내 응용 프로그램에 대해, 운영 체제가 윈도우 7이면 바탕 화면 분해를 사용하지 않는 스크립트를 실행하고 싶습니다. lua에서 dwmapi.lib에 액세스 할 수있는 방법이 있습니까? 데스크탑 창 관리자에 액세스 할 수있는 시스템 라이브러리 기능이 있습니까?루아 스크립팅을 사용하여 데스크탑 구성 사용 안 함

나는 약간의 인터넷 검색을 수행하고 VBScript를 다음 코드를 발견 .. 내가 LUA에서이 작업을 수행 할 수있는 방법

Private Const DWM_EC_DISABLECOMPOSITION As Long = 0 
Private Const DWM_EC_ENABLECOMPOSITION As Long = 1 

Private Declare Function DwmEnableComposition Lib "dwmapi" (uCompositionAction As Long) As Long 

Private Function SUCCEEDED(hr As Long) As Boolean 
    SUCCEEDED = (hr >= 0) 
End Function 
Private Function FAILED(hr As Long) As Boolean 
    FAILED = (hr < 0) 
End Function 

Private Sub Form_Load() 
    If SUCCEEDED(DwmEnableComposition(DWM_EC_DISABLECOMPOSITION)) Then 
     MsgBox "Vista Aero est Desactive" 
    Else 
     MsgBox "Vista Aero n'a pas pu etre Desactive" 
    End If 

End Sub 

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer) 
    MsgBox Cancel 
    MsgBox UnloadMode 
    If SUCCEEDED(DwmEnableComposition(DWM_EC_ENABLECOMPOSITION)) Then 
     MsgBox "Vista Aero est Active" 
    Else 
     MsgBox "Vista Aero n'a pas pu etre active" 
    End If 

End Sub 

?

답변

1

헤더 파일이없고 직접 Lua의 DLL (dwmapi.dll) 함수에 액세스하려는 경우 "외부 함수 인터페이스"라이브러리를 사용해보십시오. Alien (libffi 랩핑), LuaJIT FFI (LuaJIT를 사용하려면) 및 C/Invoke Lua에 대한 링크는 "C Foreign Function Interfaces" on the Lua Wiki 섹션을 참조하십시오.

+0

답장을 보내 주셔서 감사합니다. 몇 가지 예를 들어주세요. – user1375481