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

    Ajuste de módulo para rodar em 32 e 64 bits

    avatar
    WilliamBPJunior
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 14/07/2022

    Ajuste de módulo para rodar em 32 e 64 bits Empty Ajuste de módulo para rodar em 32 e 64 bits

    Mensagem  WilliamBPJunior 14/7/2022, 12:55

    Olá,
    Estou com problemas em um módulo que roda em 32 bits, mas atualmente, com a atualização dos equipamentos para 64 bits e Office 365, não consigo executar.
    Incompatibilidade:
     
    Código:
    Public Function InputBoxDK(Prompt As String, Optional Title As String, _
     Optional Default As String, _
     Optional Xpos As LongPtr, _
     Optional Ypos As LongPtr, _
     Optional Helpfile As String, _
     Optional Context As Long) As String

     Dim lngModHwnd As LongPtr, lngThreadID As LongPtr

     '// Lets handle any Errors JIC! due to HookProc> App hang!
     On Error GoTo ExitProperly
     lngThreadID = GetCurrentThreadId
     lngModHwnd = GetModuleHandle(vbNullString)

     hHook = SetWindowsHookEx(WH_CBT, AddressOf NewProc, lngModHwnd, lngThreadID)  << ERRO: TIPOS INCOMPATÍVEIS
    Segue anexado o código do módulo.
    Agradeço a ajuda, atenciosamente.
    Anexos
    Ajuste de módulo para rodar em 32 e 64 bits AttachmentImputBox.txt
    Você não tem permissão para fazer download dos arquivos anexados.
    (5 Kb) Baixado 5 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Ajuste de módulo para rodar em 32 e 64 bits Empty Re: Ajuste de módulo para rodar em 32 e 64 bits

    Mensagem  Alvaro Teixeira 14/7/2022, 17:37

    Olá William Junior, seja Bem-Vindo ao fórum!

    Tema diversas vezes abordado, já tentou a "Busca" aqui do fórum, veja como fazer:
    https://www.maximoaccess.com/t1115-busca-no-forum-search

    E parece que está com sorte, veja este tópico:
    https://www.maximoaccess.com/t20840-resolvidoalterar-modulo-para-rodar-em-32-e-64-bits

    Abraço
    avatar
    WilliamBPJunior
    Novato
    Novato


    Respeito às regras : Respeito às Regras 100%

    Sexo : Masculino
    Localização : Brasil
    Mensagens : 2
    Registrado : 14/07/2022

    Ajuste de módulo para rodar em 32 e 64 bits Empty Ajuste de módulo para rodar em 32 e 64 bits

    Mensagem  WilliamBPJunior 15/7/2022, 01:49

    Obrigado pela resposta!
    Já posso afirmar que avancei no módulo, contudo ainda tenho erros a tratar.
    A partir das referências ajustei o módulo e resolvi os problemas com a ImputBox.
    Essa ImputBox me loga com uma aplicação (API) que emula um sistema, e os comandos também são escritos via VBA. Consegui efetuar a conexão, mas não consigo rodar o código que executa consultas.
    Problema (Parte do Código):

    SessaoAtiva.autECLWinMetrics.WindowTitle = strNome

    If ModoDireto_ = True Then
    HllFunctionNo = HA_CONNECT_PS
    HllData = letraSessao
    HllLength = 4
    HllReturnCode = 0
    dummy& = hllapi&(HllFunctionNo, HllData, HllLength, HllReturnCode) << ERRO: HllFunctionNo incompatível com ByRef
    novaSessao = True
    If HllReturnCode = HARC_SUCCESS Then
    'letraSessao = "B"
    Else
    MsgBox "Erro", vbOKOnly, "Erro conexão (modo direto)"
    End If
    End If

    Estou anexando o código, espero poder contar com a ajuda de vocês na minha jornada.
    Obrigado!
    Anexos
    Ajuste de módulo para rodar em 32 e 64 bits AttachmentAPI.txt
    Você não tem permissão para fazer download dos arquivos anexados.
    (39 Kb) Baixado 6 vez(es)
    Alvaro Teixeira
    Alvaro Teixeira
    Moderador Global
    Moderador Global


    Respeito às regras : Respeito às Regras 100%

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

    Ajuste de módulo para rodar em 32 e 64 bits Empty Re: Ajuste de módulo para rodar em 32 e 64 bits

    Mensagem  Alvaro Teixeira 15/7/2022, 11:49

    Olá William Junior,

    O código da API é um pouco complexo e faz referencia/chamadas a uma DLL.
    Não sabemos como se vai comportar em chamada a partir de código 64bits.
    Vou presumir que este código faz a comunicação com um equipamento, enviado comandos.

    Só mesmo você é que conseguirá resolver.
    Tem o artigo do colega Avelino Sampaio que já indiquei na mensagem nr. 2
    Também tem este da Microsoft docs.microsoft.com/pt-br/office/client-developer/shared/compatibility-between-the-32-bit-and-64-bit-versions-of-office

    Apenas a minha sugestão, verifique nesta parte da função toda que é invocada o tipos de dados
    Ajuste de módulo para rodar em 32 e 64 bits 0215

    Boa sorte!
    Abraço

      Data/hora atual: 24/9/2022, 20:57