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


    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock)

    avatar
    Convidado
    Convidado


    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock) Empty Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock)

    Mensagem  Convidado 9/2/2013, 22:14

    Amigos tenho um bat para instalação de 3 bibliotecas no windows 7, são elas:
    msvbvm50.dll
    nslock15vb5.oca
    nslock15vb5.ocx

    No Bat tenho o seguinte comando:
    Código:
    copy msvbvm50.dll %SystemRoot%\SysWOW64\msvbvm50.dll
    regsvr32.exe  msvbvm50.dll

    copy nslock15vb5.oca %SystemRoot%\SysWOW64\nslock15vb5.oca

    copy nslock15vb5.ocx %SystemRoot%\SysWOW64\nslock15vb5.ocx
    regsvr32.exe  nslock15vb5.ocx

    O que ocorre é que se clico diretamente no bat o executando funciona, mas se executo o bat através de uma função, gera erro.


    A função que utilzo para executar o bat em VBA:
    Código:
     nArquivo = CurrentProject.path & "\Dll\NsLockInstall" & "registraWin64.bat"
            Diretorio = CurrentProject.path & "\Dll\NsLockInstall"
            Call ShellExecute(0, vbNullString, nArquivo, vbNullString, vbNullString, 0)
            CurrentDb.Execute "UPDATE tblSistemasDependentes set Instalado =1 WHERE SistemaDependente='NsLockWin7'"
            MsgBox "Processo concluído com êxito", vbInformation, "CONFIGURAÇÃO CONCLUÍDA"


    O que necessito:

    Ou corrigir a função para que o bat seja executado corretamente, ou transformar o bat acima em uma função

    Se puderem ajudar fico grato.

    Abraços
    avatar
    Convidado
    Convidado


    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock) Empty Re: [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock)

    Mensagem  Convidado 9/2/2013, 22:18

    Print do erro gerado se executo o bat via VBA:

    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock) ErroNsLock
    avatar
    Convidado
    Convidado


    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock) Empty Re: [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock)

    Mensagem  Convidado 9/2/2013, 22:28

    Bem amigos, no mesmo sistema tenho um modulo que registra as demais dll's... coloquei as Bibliotecas acima na pasta onde ficam as dll diversas e executei e registrou corretamente, substituindo o Bat.

    Código:

    '---------------------------------------------------------------------------------------
    ' Procedure    : RegistraBiblioteca
    ' Author        : Harysohn P. Pina (PILOTO) - Harysohn@hotmail.com
    ' Fórum        : Fórum Máximo Access -  http://maximoaccess.forumeiros.com/
    ' Date          : 23/1/2014
    ' Comentários  : Registra Dll e Ocx em WinXP e Win7 e ativa referências
    '---------------------------------------------------------------------------------------
    Function RegistraBiblioteca()
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    On Error GoTo TrataErro
    Dim NomeProcedimento As String
        NomeProcedimento = "RegistraBiblioteca"
        'Adiciona o nome do procedimento à função
        PegaProcedimento (NomeProcedimento)
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Dim varFile As Variant, nRef As String, varPath As String
    Dim ref As Reference
    Dim fso, Pasta, Arquivo
    Dim StrDestino As String

    'Checa a tabela para verificar se as referências foram instaladas
    If DCount("*", "tblSistemasDependentes", "SistemaDependente = 'Registro de Bibliotecas' And Instalado = True") = 1 Then Exit Function
        MsgBox "Instalando Referências", vbInformation, "INSTALAÇÃO REFERÊNCIAS"
    Set fso = CreateObject("Scripting.FileSystemObject")
    Set Pasta = fso.GetFolder(CurrentProject.path & "\dll")

    'verifica qual o sistema operacional
    If MostraVersao = "Microsoft Windows XP" Then
            StrDestino = "C:\Windows\System32"
    ElseIf Left(MostraVersao, 9) = "Windows 7" Then
            StrDestino = "C:\Windows\SysWow64"
    End If

        'Busca pelos arquivos de bibliotecas dentro da pasta dll na pasta do sistema
        For Each Arquivo In Pasta.Files
            nRef = Arquivo
            'Carrega a variável com o caminho do Windows e o nome da biblioteca
            varPath = StrDestino & Right(nRef, Len(nRef) - Len(Pasta))
            'Se a biblioteca já está dentro da pasta System32 no windows não é instalada
            If Len(Dir(varPath, vbDirectory) & "") = 0 Then
                'Copia a biblioteca para a pasta system32 no windows
                FileCopy nRef, varPath
                'Registra a Dll
                shell "regsvr32.exe /s """ & varPath & """ , vbMinimizedNoFocus ', vbHide ', vbMinimizedNoFocus ', vbNormalFocus"
                    'Pesquisa pelas referencias
                    For Each ref In References
                        If ref.FullPath = nRef Then
                            varPath = "Sim"
                        End If
                    Next ref
                        If varPath = "Sim" Then
                        'MsgBox "Referência já existe"
                        Else
                            'Adiciona a referência no projeto
                            Set ref = References.AddFromFile(nRef)
                            'MsgBox "Referência adicionada: " & ref.FullPath, vbOKOnly + vbInformation, "SUCESSO"
                        End If
            End If
    'Continuar:
        Next Arquivo
            'Atualiza a tabela para marcar como instalado as referências
            CurrentDb.Execute "UPDATE tblSistemasDependentes set Instalado =1 WHERE SistemaDependente='Registro de Bibliotecas'"
    Exit Function
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    'Tratamento de Erros
    '~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
    Exit_TrataErro:
        DoCmd.Hourglass False
        DoCmd.Echo True
    Exit Function
    TrataErro:
        Select Case err.Number
      Case 40179
          Resume Next
      Case -2147319779
          Resume Next
      Case 32813
          Resume Next
      Case Else
          DoCmd.Hourglass False
          DoCmd.Echo True
          'Chama a função global de tratamento de erros
            GlobalErrHandler ("mdlRegstroDll")
      End Select
    End Function

    Grato.
    criquio
    criquio
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 11229
    Registrado : 30/12/2009

    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock) Empty Re: [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock)

    Mensagem  criquio 9/2/2013, 23:53

    Não sei porque, mas tenho a impressão que já vi alguns nomes de variáveis utilizadas no processo Laughing

    Mas, se resolveu, resolvido está, no habitual três em um e em três mensagens né? Laughing


    .................................................................................
    Meu novo site: www.vcssistemas.com.br

    Clique aqui e veja um vídeo que explica como fazer pesquisas no forum.


    DICA: Quando precisar inserir um exemplo do seu aplicativo, siga os procedimentos abaixo:
    1 - faça uma cópia do aplicativo
    2 - retire tudo que não for necessário à solução do problema, exceto o que o aplicativo precisar para funcionar
    3 - use o Compactar/Reparar
    4 - compacte o aplicativo em zip ou rar (zip para postagem como anexo na mensagem)


    Agradeça a quem lhe ajudou, clicando no joinha de uma das mensagens do usuário.
    Positive as mensagens que achar útil, no canto superior direito delas.

    avatar
    Convidado
    Convidado


    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock) Empty Re: [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock)

    Mensagem  Convidado 10/2/2013, 00:20

    Hehehehe,,,, São vossas Mestre... eu apenas utilizei com Louvor.... cheers cheers cheers cheers

    é que utilizo um gerador de cabeçalhos padrão, mas a base para o que fiz surgiu de vossa ajuda.

    Abraços.
    avatar
    Convidado
    Convidado


    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock) Empty Re: [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock)

    Mensagem  Convidado 10/2/2013, 00:27

    Falar nisso... Eu tô mesmo parecendo o Rubinho Pé de Chinelo... Não consigo acompanha os Dedos no Teclado Mais Rápido Do Fóruim.... Já são mais de 9.000 post..

    Parabéns... Um dia chego Lá!!!!

    lol! lol! lol! lol! lol!

    Conteúdo patrocinado


    [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock) Empty Re: [Resolvido]Transformatr .Bat em função ou executar o Bat via Vba sem gerar erro.(ActiveLock)

    Mensagem  Conteúdo patrocinado


      Data/hora atual: 2/5/2024, 20:54