MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração


Participe do fórum, é rápido e fácil

MaximoAccess

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

https://www.maximoaccess.com/t48-regras-do-forum

Obrigado

Administração

MaximoAccess

Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

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


2 participantes

    Descobrir se é o MS Access Runtime

    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  DamascenoJr. 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


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Heliconrec e gibegarcia gostam desta mensagem

    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  Alvaro Teixeira 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
    DamascenoJr.
    DamascenoJr.
    Moderador
    Moderador


    Respeito às regras : Respeito às Regras 100%

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

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

    Mensagem  DamascenoJr. 9/7/2019, 00:12

    cheers


    .................................................................................
    Ajude-se a ser ajudado, anexe seu projeto.
    Sempre tente entender o código,
    não somente copie e cole.
    Positive as mensagens que achar útil clicando no '+' no canto superior direito delas.

    Conteúdo patrocinado


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

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 28/3/2024, 17:45