Ir para o conteúdo

 Voltar a PW3270 Desen...
Tela cheia

Macro Excel

17 de Outubro de 2012, 10:54 , por Desconhecido - | 2 Pessoas seguindo este artigo.
Visualizado 4978 vezes

Boa tarde, amigos..

Estamos buscando conhecer mais sobre esse sistema e estamos com uma dúvida grande aqui...

É possível rodar macro de Excel/VBA junto com esse programa?

Se sim, como fazer o VBA identificar o programa?

Pois não consigo efetuar essa conexão, se alguém puder me ajudar, ficarei muito grato. 

Autor: Vladimir Barros Seidel


4141 comentários

  • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
    30 de Outubro de 2012, 7:38

     

    Olá,

    Desculpe a demora mas eu pensei em procurar um pouco mais sobre macros em excel antes de responder e, como acabou não dando tempo, essa mensagem foi ficando para trás.

    Já criei um pacote experimental da versão 5 que implementa algumas chamadas HLLAPI através de uma dll específica que pode ser chamada pelo VB, porém, como não conheço praticamente nada de Excel não sei se o mesmo mecanismo se aplica; O excel consegue carregar DLLs C e chamar uma função nelas tal qual o VB?

     

     

    • 2adda397a79c26cc804a14f84c0dd1bb?only path=false&size=50&d=404Francisco Santos(usuário não autenticado)
      17 de Janeiro de 2013, 15:56

       

      Podem ser chamadas funções dentro de DLL's no Excel tranquilo. Normalmente são escritas em C++ porém acredito que escrita em C também deve funcionar. Pelo menos eu acho.

      • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
        18 de Janeiro de 2013, 9:06

         

        Olá,

        As funções exportadas para o excel seguem o mesmo formato do VB? Se for isso a biblioteca de hllapi deve carregar normalmente.

         

        • 31c71a15d101b44c4df9b3866e97061b?only path=false&size=50&d=404Xavier do Nascimento(usuário não autenticado)
          22 de Janeiro de 2013, 9:27

           

          Onde consigo essa dll, esta no pacote da aplicação?

          • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
            22 de Janeiro de 2013, 9:48

             

            Olá,

            Sim. No pacote da versão 5. Precisa marcar a opção em plugins->hllapi para a libhllapi.dll seja instalada no diretório do sistema.

             

            • 313da02340f4e1ab1462e2168c67c277?only path=false&size=50&d=404Renato Dourado Diniz(usuário não autenticado)
              4 de Fevereiro de 2013, 13:29

               

              Perry

              Instalei a versão 5 como descrito, mas não veio a hllapi.dll, só veio um header, o hllapi.h.

              Tentei tanto o pacote pw3270-5.0.0-gtk-2.24.7-i686-install.exe quanto o pw3270-5.0.0-gtk-3.4.4-i686-install.exe

              Como devo proceder nesse caso?

              Grato!

              • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                4 de Fevereiro de 2013, 14:13

                 

                Olá,

                Estranho! Acabei de conferir aqui e, se a opção plugin/HLLAPI estiver marcada ele instala o arquivo libhllapi.dll no diretório do sistema.

                Os dois pacotes são praticamente iguais, a única diferença é a versão do runtime gtk.

                 

                • 313da02340f4e1ab1462e2168c67c277?only path=false&size=50&d=404Renato Dourado Diniz(usuário não autenticado)
                  4 de Fevereiro de 2013, 17:13

                   

                  Ops, falha minha!

                  Grato! 

                  • 313da02340f4e1ab1462e2168c67c277?only path=false&size=50&d=404Renato Dourado Diniz(usuário não autenticado)
                    5 de Fevereiro de 2013, 13:51

                     

                    Perry

                    Declarei no Excel as constantes, chamei a DLL e fiz uma função teste() para verificar o funcionamento.

                    Testei o código e o Excel "quebra".

                    Confesso que li o código em C, mas ainda não consegui desvendar quais valores devo devo fornecer para os parâmetros da função hllapi.

                    Você poderia dar uma luz? Grato! 

                    Private Const HLLAPI_MAXLENGTH = 32768

                    Private Const HLLAPI_CMD_CONNECTPS = 1

                    Private Const HLLAPI_CMD_DISCONNECTPS = 2

                    Private Declare Function hllapi Lib "libhllapi.dll" ( _

                    ByVal funcao As Integer, _

                    ByVal buff As String, _

                    ByVal comprimento As Integer, _

                    ByVal rc As Long) As Integer

                     

                    Sub teste()

                    Dim s As String

                    x = hllapi(HLLAPI_CMD_CONNECTPS, s, 1000, 1)

                    End Sub

                    • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                      5 de Fevereiro de 2013, 16:20

                       

                      Olá,

                      Faltou reservar espaço para a string de saída (dê uma olhada na conversa sobre a HLLAPI), no caso o código deveria ficar:

                      Private Const HLLAPI_MAXLENGTH = 32768
                      Private Const HLLAPI_CMD_CONNECTPS = 1
                      Private Const HLLAPI_CMD_DISCONNECTPS = 2
                      Private Declare Function hllapi Lib "libhllapi.dll" ( _ 
                      ByVal funcao As Integer, _
                      ByVal buff As String, _
                      ByVal comprimento As Integer, _
                      ByVal rc As Long) As Integer
                       
                      Sub teste() 
                      Dim s As String
                      s = space(1000)
                      x = hllapi(HLLAPI_CMD_CONNECTPS, s, 1000, 1) 
                      End Sub

                       

                       

                    • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                      25 de Fevereiro de 2013, 23:58

                       

                      Olá, Fiz alguns ajuste e simplificações na DLL; o script abaixo é resultado desses ajustes; acredito que ficou mais fácil implementar novos scripts...

                      REM ***** BASIC *****

                      REM Inicializa a biblioteca
                      Declare Function hllapi_init Lib "libhllapi.dll" (ByVal tp as string) as Long
                      Declare Function hllapi_deinit Lib "libhllapi.dll" () as Long
                      Declare Function hllapi_get_revision Lib "libhllapi.dll" () as Long
                      Declare Function hllapi_connect Lib "libhllapi.dll" (ByVal uri as string) as Long
                      Declare Function hllapi_disconnect Lib "libhllapi.dll" () as Long
                      Declare Function hllapi_wait_for_ready Lib "libhllapi.dll" (ByVal timeout as Integer) as Long
                      Declare Function hllapi_get_screen_at Lib "libhllapi.dll" (ByVal row as Integer, ByVal col as Integer, ByVal text as String) as Long
                      Declare Function hllapi_enter Lib "libhllapi.dll" () as Long
                      Declare Function hllapi_get_message_id Lib "libhllapi.dll" () as Long
                      Declare Function hllapi_set_text_at Lib "libhllapi.dll" (ByVal row as Integer, ByVal col as Integer, ByVal text as String) as Long
                      Declare Function hllapi_cmp_text_at Lib "libhllapi.dll" (ByVal row as Integer, ByVal col as Integer, ByVal text as String) as Long
                      Declare Function hllapi_wait Lib "libhllapi.dll" (ByVal timeout as Integer) as Long
                      Declare Function hllapi_pfkey Lib "libhllapi.dll" (ByVal keycode as Integer) as Long
                      Declare Function hllapi_pakey Lib "libhllapi.dll" (ByVal keycode as Integer) as Long

                      Sub Main

                      if hllapi_init("") <> 0 then
                      print "Erro ao inicializar a biblioteca"
                      Exit Sub
                      End If

                      hllapi_connect("fandezhi.efglobe.com:23")

                      if hllapi_wait_for_ready(60) <> 0 then
                      print "Conexão não se estabilizou no tempo esperado"
                      Exit Sub
                      End If

                      Dim text as string

                      text = space(2000)
                      if hllapi_get_screen_at(1,1,text) <> 0 then
                      print "Erro ao tentar obter conteudo do terminal"
                      Exit Sub
                      End If
                      print text

                      hllapi_disconnect()
                      hllapi_deinit()

                      End Sub

                      • 2104d1f474df9b1d8433f23c822887df?only path=false&size=50&d=404Gabriel Soares(usuário não autenticado)
                        18 de Setembro de 2013, 10:42

                         

                        Oi Perry,

                        Estou tentando desenvolver uma macro de excel usando seu script como base mas não consigo andar de jeito nenhum.

                         Estou tentando capturar um trecho qualquer de texto de uma sessão já aberta mas o Excel simplesmente trava e reinicia na hora de executar o método  hllapi_get_screen_at().

                        Aparentemente tudo parece está funcionando normal, consigo ver um "S" na OIA do terminal mas não sei mais o que fazer pro Excel não travar. 

                        Segue o código:

                        Sub Main()

                        hllapi_init ("pw3270:A")
                        Dim text As String
                        text = hllapi_get_screen_at(4, 2, 44) Range("A1").Value = text
                        Call hllapi_disconnect()
                        Call hllapi_deinit()

                        End Sub  

                        Será que pode me dar alguma luz?

                         Abraço 

                        • 2104d1f474df9b1d8433f23c822887df?only path=false&size=50&d=404Gabriel Soares(usuário não autenticado)
                          18 de Setembro de 2013, 10:44

                           

                          Ops, comeu um "enter" no código...

                          Sub Main()

                          hllapi_init ("pw3270:A") 
                          Dim text As String 
                          text = hllapi_get_screen_at(4, 2, 44)
                          Range("A1").Value = text 
                          Call hllapi_disconnect() 
                          Call hllapi_deinit()

                          • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                            18 de Setembro de 2013, 11:06

                             

                            Olá,

                            Você precisa inicializar a string com espaços

                            Sub Main()

                            hllapi_init ("pw3270:A")  
                            Dim text As String  

                            text = space(44)

                            if hllapi_get_screen_at(4, 2, text) <> 0 then

                            print "Erro ao tentar obter conteudo do terminal"
                            Exit Sub 
                            End If

                            Range("A1").Value = text  
                            Call hllapi_disconnect()  

                            Call hllapi_deinit() 

                      • 313da02340f4e1ab1462e2168c67c277?only path=false&size=50&d=404Renato Dourado Diniz(usuário não autenticado)
                        26 de Fevereiro de 2013, 17:42

                         

                        Perry

                        Fiz os testes tanto no Excel quanto no Calc do BROfficce.

                        Instalei a última versão do pw, abri uma sessão, coloquei o código no Excel e no BROffice, fiz as adaptações necessárias e rodei.

                        Nos dois casos, a aplicação quebrou na função hllapi_init.

                        Verifiquei que as outras funções acessam a DLL normalmente, mas como não têm a conexão estabelecida, não retornam os valores esperados.

                        Não sei se tem a ver com a versão do Excel e do BROffice. Eu utilizo Excel 2003 e  BROffice 3.2.

                        Agradeço desde já pela atenção e posso garantir que, além de mim, uma legião de pessoas está esperando essa DLL funcionar.

                         Abraço! 

                        • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                          26 de Fevereiro de 2013, 17:48

                           

                          Olá,

                          Acho que sei qual é o problema: O diretório das libs não deve estar no path, daí, ele falha ao carregar alguma das DLLs necessárias. Vou fazer uns ajustes para tentar contornar esse problema ou, pelo menos, abrir um popup de aviso.

                          • 313da02340f4e1ab1462e2168c67c277?only path=false&size=50&d=404Renato Dourado Diniz(usuário não autenticado)
                            27 de Fevereiro de 2013, 15:13

                             

                            Perry

                            Fiz os testes no Excel e BROffice. A função init passou sem problemas.

                            Agora está travando na função hllapi_connect. Eu tentei tanto com o nome do host como pelo endereço IP e mesmo assim trava o aplicativo (não quebra, só trava).

                            • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                              4 de Março de 2013, 7:41

                               

                              Olá,

                              Pode ser algum problema durante a negociação; a URI está completa (contem host:porta)? De qualquer forma incluí mais um parâmetro para ativar a conexão em background, porém, nesse caso o código VB precisa esperar até o término da negociação com o host. Nesse caso o script de teste precisou de ajustes ( O 0 no segundo parâmetro de connect indica para retornar antes do término da negociação com o host):

                              (...)
                              Declare Function hllapi_connect Lib "libhllapi.dll" (ByVal uri as string, ByVal wait as Integer) as Long
                              Declare Function hllapi_is_connected Lib "libhllapi.dll" () as Long
                              (...)

                                hllapi_connect("fandezhi.efglobe.com:23",0) 
                                 
                                 Do While hllapi_is_connected() = 0
                                 
                                  hllapi_wait(1)
                                 
                                 Loop

                              • 1c843a5e1013602b3844e232e76184f8?only path=false&size=50&d=404joao marson(usuário não autenticado)
                                6 de Junho de 2013, 15:14

                                 

                                Comecei a testar a implementação do libhllapi.dll, mas já encontrei problemas. Os comandos enviados retornam números e não consigo entender o que esta acontecendo. 

                                Por exemplo, ao testar o script demo postado:

                                hllapi_init("") - retorna 16.

                                hllapi_wait_for_ready(60) - retorna 0.

                                hllapi_connect("#endereço#",0) - retorna 9  . 

                                De qualquer forma, não consegui executar com sucesso nenhum dos comandos, apesar de não ter recebido nenhuma mensagem de erro. 

                                Os retornos das funções significam o que? Alguma sugestão por não conseguir enviar comandos do Access97 para o PW3270 5?

                                • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                                  6 de Junho de 2013, 15:47

                                   

                                  Olá,

                                  Qual revisão do pw3270 você está usando? Como a biblioteca hllapi está em desenvolvimento dependendo da revisão pode ter alguma diferença. 

                                  hllapi_init retornou 16 positivo porque a função LoadLibrary() do windows falhou com erro 16 (ERROR_CURRENT_DIRECTORY); o problema do windows é traduzir esse erro em algo inteligível já que a documentação da Microsoft não ajuda muito. Se ajudar posso incluir uma função que faça a tradução da mensagem pela api oficial.

                                  Nessa situação as duas tanto a hllapi_wait_for_ready() como hllapi_connect deveriam retornar "9" (HLLAPI_STATUS_SYSTEM_ERROR) na última versão do módulo.

                                  Uma alternativa que pode te ajudar nos testes é subir uma sessão normal do pw3270 e passar o identificador dela que aparece na barra de título (na maioria das vezes é pw3270:A) como parâmetro para a função hllapi; isso faz com que a macro atue sobre a janela aberta ao invés de levantar uma instância oculta do emulador.

                                  No caso ficaria: hllapi_init("pw3270:a"); se a ligação entre os dois funcionar um "S" deve começar a piscar na OIA da janela.

                                  • D1ed57df2173731437b3f0da1339c7a1?only path=false&size=50&d=404Fernando Inocencio Lopes(usuário não autenticado)
                                    2 de Setembro de 2013, 17:13

                                     

                                    Olá

                                    Tenho tentado, ainda sem sucesso, estabelecer comunicação entre o pw3270 e o excel, através do vb. Consigo inicializar o pw3270 via comando shell e já entra na conexão automaticamente. O que preciso é definir quem é o objeto (pw3270.system) dá erro, a sessão também dá erro porque system.sessions não existe (system não existe) e system.activesession não existe porque as anteriores também não. Por gentileza, onde consigo obter as funções desse dll hllapi.

                                    Desde já agradeço!

                                    • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                                      5 de Setembro de 2013, 22:29

                                       

                                      Olá,

                                      Você não precisa levantar o aplicativo via comando shell, as funções de HLLAPI carregam automaticamente a DLL de protocolo sem precisar do aplicativo aberto. Você chegou a ver o exemplo de código VB nesse mesmo tópico? A API não usa um objeto com mas sim declarações de função com "declare function".

                                      • 26ed8f6acc997eaaffeadf5a26a4ed3e?only path=false&size=50&d=404Antônio Jorge Vicente(usuário não autenticado)
                                        13 de Setembro de 2013, 10:12

                                         

                                        Olá,

                                        Primeiramente gostaria de parabenizar o Perry pelo excelente aplicativo PW3270.
                                        Informo que consegui fazer a captura da tela do IBM com a funcão hllapi_get_screen(pos, text, tamanho)
                                        Para funcionar é necessário executar o PW3270 previamente.

                                        Abraço,
                                        Antônio Jorge

                                        • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                                          18 de Setembro de 2013, 11:10

                                           

                                          Olá,

                                          Embora seja útil para debug do script iniciar o pw3270 não é obrigatório. Você pode fazer com que o script crie a própria sessão de emulação sem usar uma janela aberta chamando a função hllapi_init com o parâmetro ""; dessa forma o script deve até ficar um pouco mais rápido já que não tem o "peso" da janela gráfica e do uso de pipes para comunicar.

                                           

                                          • 2104d1f474df9b1d8433f23c822887df?only path=false&size=50&d=404Gabriel Soares(usuário não autenticado)
                                            18 de Setembro de 2013, 19:39

                                             

                                            Oi Perry,

                                             Primeiramente muito obrigado pela resposta rápida. Fiz as alterações sugeridas mas continuo tendo o mesmo problema.

                                            Ao tentar utilizar uma sessão já existente o Excel continua congelando na função hllapi_get_screen_at(). Já tentando criar uma sessão própria para o script, o Excel congela na função hllapi_connect().

                                            Estou utilizando a versão 5.0 Revisão 2669  - GTK 3.8

                                            Você teria alguma outra ideia que eu possa tentar?

                                             Mais uma vez, muito obrigado pela ajuda.

                                            Abs, 

                                            • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                                              18 de Setembro de 2013, 22:58

                                               

                                              Olá,

                                              32 ou 64 bits? 

                                              Olhei no SVN e a última revisão é a 2766; posso gerar um novo instalador win64 como "desencargo de consciência" mas acho que não vai mudar muito. Acho que o mais eficiente é gerar uma DLL de HLLAPI com o trace habilitado para tentar descobrir qual o problema; não deveria mas pode ser que algo no excel seja diferente posto que, que eu saiba, esse módulo só foi testado no VB e no LibreOffice.

                                               

                                              PS: Estou indo p´ro Rio amanhã e não sei como vai ficar a conexão então pode haver uma certa demora na próxima resposta.

                                               

                                              • 2104d1f474df9b1d8433f23c822887df?only path=false&size=50&d=404Gabriel Soares(usuário não autenticado)
                                                19 de Setembro de 2013, 10:37

                                                 

                                                Oi Perry,

                                                Aqui no meu caso, tanto o Office quanto o pw3207 são 32 bits.

                                                Não se preocupe, fico no aguardo de quando puder responder. O assunto não é tão urgente.

                                                Grande abraço, 

                                                • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                                                  30 de Setembro de 2013, 12:16

                                                   

                                                  Olá,

                                                  Já voltei a BSB e volto ao trabalho amanhã. Lá no BB eu tenho como gerar os pacotes 32bits.

                                                  Uma pergunta: Como está a declaração da função hllapi_get_screen_at ? 

                                                   

                                                  • 746e0bb20eee14eb213dc47914e421d2?only path=false&size=50&d=404Murilo Timo(usuário não autenticado)
                                                    20 de Fevereiro de 2014, 0:13

                                                     

                                                    Pessoal estou com o seguinte problema:

                                                    Instalei o PW3270 com a extensão.

                                                    porém quando vou compilar meu programa no Visual Basic 2012 aparece a seguinte mensagem de erro:

                                                     Não é possível carregar a DLL 'libhllapi.dll': Não foi possível encontrar o módulo especificado. (Exceção de HRESULT: 0x8007007E)

                                                     Pesquisei e vi que o aruivo foi instalado no seguinte caminho; C:\Windows\SysWOW64

                                                    porque será que não estou conseguindo compilar? 

                                                     

                                                     

                                                    • 746e0bb20eee14eb213dc47914e421d2?only path=false&size=50&d=404Murilo Timo(usuário não autenticado)
                                                      20 de Fevereiro de 2014, 1:23

                                                       

                                                      olha só.

                                                      re-instalei o pw e agora meu proble é esse

                                                      An unhandled exception of type 'System.BadImageFormatException' occurred in ConsoleApplication1.exe

                                                      Additional information: Foi feita uma tentativa de se carregar um programa com um formato incorreto. (Exceção de HRESULT: 0x8007000B) 

                                                      • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                                                        20 de Fevereiro de 2014, 20:33

                                                         

                                                        Olá,

                                                        Isso parece problema de formato, por exemplo, não dá (ou não deveria dar) para carregar uma dll de 32 bits numa aplicação de 64 bits; o formato é diferente.

                                                        Pelo diretório (WOW*) o pw3270 que você instalou parece ser de 32 bits. O VB também é?

                                                         

                                                        • B8e12c87422d2aad529de576fab523df?only path=false&size=50&d=404Bruno Boaventura(usuário não autenticado)
                                                          4 de Abril de 2014, 11:21

                                                           

                                                          Perry, tudo bom?

                                                          Instalei a revisão 2778, com HLLAPI.

                                                          Primeiro notei que no seu exemplo ele declara as funções da DLL no VB usando "libhllapi.dll", mas o instalador deixou o arquivo com o nome "hllapi.dll" na pasta "plugins".

                                                          Ao tentar carregar a DLL seguindo o seu exemplo, o Excel informa que não foi possível encontrar o aruivo "hllapi.dl":

                                                          "Erro em tempo de execução '53'
                                                          O arquivo a seguir não foi localizado: hllapi.dll"

                                                          Já copiei o arquivo "hllapi.dll" para as pastas do PATH e não resolveu...

                                                          Tem alguma idéia?

                                                          Essa revisão 2778 é a mais nova?
                                                          O script de exemplo (que você listou nesse tópico) funciona com essa revisão do PW3270?

                                                          Agradeço desde já.

                                                          Rem ***** BASIC *****
                                                          Rem Inicializa a biblioteca

                                                          Declare Function hllapi_init Lib "hllapi.dll" (ByVal tp As String) As Long
                                                          Declare Function hllapi_deinit Lib "hllapi.dll" () As Long
                                                          Declare Function hllapi_get_revision Lib "hllapi.dll" () As Long
                                                          Declare Function hllapi_connect Lib "hllapi.dll" (ByVal uri As String) As Long
                                                          Declare Function hllapi_disconnect Lib "hllapi.dll" () As Long
                                                          Declare Function hllapi_wait_for_ready Lib "hllapi.dll" (ByVal timeout As Integer) As Long
                                                          Declare Function hllapi_get_screen_at Lib "hllapi.dll" (ByVal row As Integer, ByVal col As Integer, ByVal text As String) As Long
                                                          Declare Function hllapi_enter Lib "hllapi.dll" () As Long
                                                          Declare Function hllapi_get_message_id Lib "hllapi.dll" () As Long
                                                          Declare Function hllapi_set_text_at Lib "hllapi.dll" (ByVal row As Integer, ByVal col As Integer, ByVal text As String) As Long
                                                          Declare Function hllapi_cmp_text_at Lib "hllapi.dll" (ByVal row As Integer, ByVal col As Integer, ByVal text As String) As Long
                                                          Declare Function hllapi_wait Lib "hllapi.dll" (ByVal timeout As Integer) As Long
                                                          Declare Function hllapi_pfkey Lib "hllapi.dll" (ByVal keycode As Integer) As Long
                                                          Declare Function hllapi_pakey Lib "hllapi.dll" (ByVal keycode As Integer) As Long

                                                          • B8e12c87422d2aad529de576fab523df?only path=false&size=50&d=404Bruno Boaventura(usuário não autenticado)
                                                            4 de Abril de 2014, 11:25

                                                             

                                                            Perry, tudo bom?

                                                            Instalei a revisão 2778, com HLLAPI.

                                                            Primeiro notei que no seu exemplo ele declara as funções da DLL no VB usando "libhllapi.dll", mas o instalador deixou o arquivo com o nome "hllapi.dll" na pasta "plugins".

                                                            Ao tentar carregar a DLL seguindo o seu exemplo, o Excel informa que não foi possível encontrar o aruivo "hllapi.dl":

                                                            "Erro em tempo de execução '53'

                                                            O arquivo a seguir não foi localizado: hllapi.dll"

                                                            Já copiei o arquivo "hllapi.dll" para as pastas do PATH e não resolveu...

                                                            Tem alguma idéia?

                                                            Essa revisão 2778 é a mais nova?

                                                            O script de exemplo (que você listou nesse tópico) funciona com essa revisão do PW3270?

                                                            Agradeço desde já.

                                                            • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                                                              4 de Abril de 2014, 18:20

                                                               

                                                              Olá,

                                                              Conferi no fonte do instalador (último release) e  ele coloca uma hllapi.dll no diretório de plugins *e* uma libhllapi.dll no diretório definido no $SYSDIR (C:\Windows\System ou C:\WinNT\System32 mas pode mudar dependendo do ambiente e da versão do windows). A primeira é um plugin mesmo e atua como um "serviço" recebendo as requisições da segunda.

                                                              Quanto à revisão não tenho certeza; a última revisão do fonte é a 2930 e já tem um tempo que não gero versões windows.  Quando o servidor svn voltar a funcionar eu confirmo a partir de qual release ele passou  a instalar as duas DLLs.

                                                               Os scripts desse tópico funcionam (ou deveriam funcionar) no release que instala as duas DLLs.

                                                              • B8e12c87422d2aad529de576fab523df?only path=false&size=50&d=404Bruno Boaventura(usuário não autenticado)
                                                                4 de Abril de 2014, 21:24

                                                                 

                                                                Obrigado pela tempestividade na sua resposta! 

                                                                Bom saber que estou com um release antigo.

                                                                Trabalho na Caixa Econômica Federal e estamos tentando homologar a versão 5 do PW3270 para substituir o MyExtra em todas as estações, mas preciso ter o instalador para Windows de  uma revisão recente para que possamos realizar o processo de homologação do software.

                                                                 O que ainda nos prende ao Extra é a grande quantidade de macros VBA que utilizamos. Com um instalador que permita usar a HLLAPI no PW3270 sem ajustes posteriores, conseguiríamos homologar o software para uso na Caixa e ainda nos livraríamos do Extra.

                                                                Se for possível gerar um instalador para Windows da última revisão, eu ficarei muito grato. 

                                                                • B8e12c87422d2aad529de576fab523df?only path=false&size=50&d=404Bruno Boaventura(usuário não autenticado)
                                                                  16 de Abril de 2014, 17:01

                                                                   

                                                                  Estamos tendo problemas com a libhllapi.dll

                                                                  Tanto MSOffice como LibreOffice não conseguem localizar a DLL, mesmo colocando o caminho completo na declaração.

                                                                  Estamos usando:

                                                                  Windows 8 32 bits

                                                                  PW3270 32 bits

                                                                  MSOffice 2003

                                                                  LibreOffice 3.3 (também ocorre no 4.2)

                                                                  • 3f09f0772d9354bc3661d73bf02b0f60?only path=false&size=50&d=404Perry Werneck(usuário não autenticado)
                                                                    16 de Abril de 2014, 17:10

                                                                     

                                                                    Olá,

                                                                    Qual versão/release do pw3270? Eu gerei um pacote novo hoje de manhão que "deveria" resolver esse problema.

                                                                     

                                                                  • 9ec7fff18064aedad16edaf7aea3e395?only path=false&size=50&d=404luiz e ferreira(usuário não autenticado)
                                                                    12 de Junho de 2014, 22:24

                                                                     

                                                                    Bruno, como está a homologação? Posso entrar em contato pelo Mensageiro/Padion ou por email na Caixa? 

                                                                    • B8e12c87422d2aad529de576fab523df?only path=false&size=50&d=404Bruno Boaventura(usuário não autenticado)
                                                                      12 de Setembro de 2014, 1:53

                                                                       

                                                                      Sim, Luiz. Fique à vontade para entrar em contato.

                                                                      Desculpe a demora... alguns processos de transição por aqui...

                                                                      Acabou que a Caixa homologou uma revisão da versão 5 que ainda não suportava a hllapi... :-( agora estou tentando fazer o processo novamente com a revisão mais recente. 

                            • 9ec7fff18064aedad16edaf7aea3e395?only path=false&size=50&d=404luiz e ferreira(usuário não autenticado)
                              12 de Junho de 2014, 22:20

                               

                              Renato, por favor, obteve resultado? Se sim, poderia compartilhar, em especial para Calc. Grato

Essa comunidade não possui posts nesse blog