MaximoAccess

Caro Usuário, antes de postar pela primeira vez, leia as regras do fórum.

Obrigado

Administração do MaximoAccess

Dicas Ms Access, Exemplos Ms Access, Codigos VBA Ms Access, SQL Ms Access


    Descobrir se é o MS Access Runtime

    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 653
    Registrado : 22/11/2016

    Descobrir se é o MS Access Runtime Empty Descobrir se é o MS Access Runtime

    Mensagem  IvanJr. em 7/7/2019, 00:33

    Estou montando o instalador dos meus aplicativos e surgiu-me a necessidade de detectar se o Access da máquina é o Runtime ou não. Preferi não apoiar me no build number para isto.

    Claro que a linguagem lá não é VBScript, mas segue aqui a lógica que usei.

    Código:
    option explicit
    on error resume next

    dim objEdReg
    dim strCaminhoAcc
    dim strVerAcc
    dim booRuntime

    set objEdReg = CreateObject("wscript.shell")

    strCaminhoAcc = objEdReg.RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\App Paths\msaccess.exe\Path")

    if err then

       err.clear
       call msgbox("Nenhuma versão MS Access instalada.", vbExclamation, "Ops!")

    else

       strVerAcc = right(strCaminhoAcc, 3)
       strVerAcc = left(strVerAcc, 2)

       if win64 then
          if cbyte(strVerAcc) = 12 then
             booRuntime = objEdReg.RegRead("HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Office" & strVerAcc & ".AccessRT\DisplayName")
          elseif objEdReg.RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Office\" & strVerAcc & ".0\Outlook\Bitness") = "x64" then
             booRuntime = objEdReg.RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Office" & strVerAcc & ".AccessRT\DisplayName")
          else
             booRuntime = objEdReg.RegRead("HKEY_LOCAL_MACHINE\Software\Wow6432Node\Microsoft\Windows\CurrentVersion\Uninstall\Office" & strVerAcc & ".AccessRT\DisplayName")
          end if
       else
          booRuntime = objEdReg.RegRead("HKEY_LOCAL_MACHINE\Software\Microsoft\Windows\CurrentVersion\Uninstall\Office" & strVerAcc & ".AccessRT\DisplayName")
       end if

       if err then
          err.clear
          booRuntime = 0
       else
          booRuntime = -1
       end if

    end if

    if booRuntime then
       call msgbox("Access ativo é a versão Runtime.", vbInformation, "Informação")
    else
       call msgbox("Access ativo não é a versão Runtime.", vbInformation, "Informação")
    end if

    set objEdReg = nothing

    'função auxiiliar para detectar se a máquina é ou não 64 bits
    function win64()

       dim objWMIService
       dim colOperatingSystems
       dim objOperatingSystem

       set objWMIService = getObject("winmgmts:\\.\root\cimv2")
       set colOperatingSystems = objWMIService.ExecQuery("Select * from Win32_OperatingSystem")

       for each objOperatingSystem in colOperatingSystems
          win64 = instr(objOperatingSystem.OSArchitecture,"64") > 0
       next

    end function


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.
    ahteixeira
    ahteixeira
    Moderador Global
    Moderador Global

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Portugal
    Mensagens : 6168
    Registrado : 15/03/2013

    Descobrir se é o MS Access Runtime Empty Re: Descobrir se é o MS Access Runtime

    Mensagem  ahteixeira em 8/7/2019, 17:50

    Olá Ivan,

    Obrigado pela partilha.

    Outra forma para aplicativos em Access, pode ser obtido através da instrução abaixo:

    Código:
    SysCmd(acSysCmdRuntime)

    Fica mais esta dica.

    Abraço
    IvanJr.
    IvanJr.
    Developer
    Developer

    Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 653
    Registrado : 22/11/2016

    Descobrir se é o MS Access Runtime Empty Re: Descobrir se é o MS Access Runtime

    Mensagem  IvanJr. em 9/7/2019, 00:12

    cheers


    .................................................................................
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.
    Sempre tente entender o código, não somente copie e cole.

    Conteúdo patrocinado

    Descobrir se é o MS Access Runtime Empty Re: Descobrir se é o MS Access Runtime

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 19/7/2019, 01:01