Determine the version of MS Access: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Updated author links.)
m (Added category links.)
Line 57: Line 57:
FunctionEnd
FunctionEnd
</highlight-nsis>
</highlight-nsis>
[[{{ns:14}}:Database Functions]]

Revision as of 20:57, 30 April 2005

Author: preisl (talk, contrib)


Description

This function determines the MS Access version by checking some registry keys.

The Function

;
; Determines the MS Access version by finding the correct registry key
;
;  Input: None
; Output: 97,2000,XP
;
; Usage:
;
;    Call AccessVersion
;    Pop "$1"
;    MessageBox MB_OK|MB_ICONINFORMATION "Access version: $1"
;
 
Function AccessVersion
 
  ; Save R0,R1 on the stack
  Push $R1
  Push $R0
 
  ClearErrors
  ReadRegStr $R0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Office\10.0\Access\InstallRoot" "Path"
  IfErrors SearchForVersion2000
  StrCpy $R1 "XP"
  Goto Found
 
  SearchForVersion2000:
    ClearErrors
    ReadRegStr $R0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Office\9.0\Access\InstallRoot" "Path"
    IfErrors SearchForVersion97
    StrCpy $R1 "2000"
    Goto Found
 
  SearchForVersion97:
    ClearErrors
    ReadRegStr $R0 HKEY_LOCAL_MACHINE "SOFTWARE\Microsoft\Office\8.0\Access\Options" ""
    IfErrors NotFound
    StrCpy $R1 "97"
    Goto Found
 
  NotFound:
    ; MessageBox MB_OK|MB_ICONEXCLAMATION "NSIS was not able to detect your MS Access version"
    StrCpy $R1 ""
 
  Found:
  Pop $R0
  Exch $R1
 
FunctionEnd