簡體   English   中英

NSIS安裝程序訪問引擎檢查是否已安裝

[英]NSIS installer access engine check if installed

我正在使用NSIS安裝程序,在安裝過程中,我需要安裝Access數據庫引擎。 這部分我正在工作。

我似乎無法弄清楚該怎么做的是檢查是否已經安裝了Access數據庫引擎(32或64位)-我不知道NSIS是否可以這樣做? 有人知道嗎?

用於訪問數據庫引擎的NSIS腳本當前正在執行此操作:-

${If} ${RunningX64}
        HideWindow
        File "access64.exe"
        ExecWait "$INSTDIR\access64.exe"
        BringToFront
${Else}
        HideWindow
        File "access32.exe"
        ExecWait "$INSTDIR\access32.exe"
        BringToFront
${EndIf}

NSIS可以檢查某些文件和/或注冊表值的存在。

在Stackoverflow上已經有許多有關訪問檢測的問題,您應該看看那些問題,看看應該查詢哪些注冊表項。 查找哪個鍵實際上取決於您是否關心特定版本或Access的任何版本是否可接受。

您還可以詢問Windows shell有關Access ProgId的信息:

!include LogicLib.nsh
Section

System::Call 'SHLWAPI::AssocQueryString(i0x00000540,i4,t"Access.Application",p0,t.r1,*i${NSIS_MAX_STRLEN})i.r0'
${If} $0 = 0
    DetailPrint "Registered application friendly name: $1"
${EndIf}
System::Call 'SHLWAPI::AssocQueryString(i0x00000540,i2,t"Access.Application",p0,t.r1,*i${NSIS_MAX_STRLEN})i.r0'
${If} $0 = 0
    DetailPrint "EXE: $1"
    ; Call GetDLLVersion etc. if needed
${EndIf} 

SectionEnd

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM