Determine the version of MS Access: Difference between revisions

From NSIS Wiki
Jump to navigationJump to search
m (Added category links.)
m (Adding new author and category links.)
Line 1: Line 1:
{|align=right
{{PageAuthor|preisl}}
|<small>Author: [[{{ns:2}}:preisl|preisl]] ([[{{ns:3}}:preisl|talk]], [[{{ns:-1}}:Contributions/preisl|contrib]])</small>
 
|}
<br style="clear:both;">
== Description ==
== Description ==
This function determines the MS Access version by checking some registry keys.
This function determines the MS Access version by checking some registry keys.
Line 58: Line 56:
</highlight-nsis>
</highlight-nsis>


[[{{ns:14}}:Database Functions]]
[[Category:Database Functions]]

Revision as of 12:07, 24 June 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