COMUNICACAO ENTRE PROGRAMAS

JALEXM 13/12/2012 10:38:14
#415901
Será que no VB6 um program pode se comunicar com outro?
Por exemplo, 2 programas feitos em VB6 estão executando no mesmo PC.
Um deles está monitorando alguma coisa, percebe que há um problema e precisa avisar o outro programa para que alguma providência seja tomada.
Como se faz isso em VB6?
Obrigado.
KWIIBY 13/12/2012 12:34:01
#415910
acho que uma forma de fazer isso seria por sockets..
KERPLUNK 13/12/2012 13:45:17
#415913
Qual dos dois programas é o seu?
JALEXM 13/12/2012 14:23:37
#415914
Citação:

:
Qual dos dois programas é o seu?



Na verdade, tenho o fonte de ambos.
KERPLUNK 13/12/2012 14:48:51
#415917
Então porque não fazer o tratamento dos erros tudo em um só programa? Qual o intuito de ter 2?
JALEXM 13/12/2012 15:19:59
#415920
Citação:

:
Então porque não fazer o tratamento dos erros tudo em um só programa? Qual o intuito de ter 2?



A explicação é meio complicada. No início, era apenas um programa. Ele usava um timer, mas não o timer do VB6, que deixa de gerar eventos com uma simples MsgBox.
Era um timer criado com funções de API. Porém, mesmo esse tipo de timer também deixa de funcionar durante consultas pesadas pela rede.
A solução foi separar em 2 programas: prog. A acessa o banco de dados pela rede e o prog. B faz suas verificações em tempo real usando o timer da API.
Dessa forma, o timer de B não é afetado pelas consultas da rede.
O problema agora é fazer B informar A quando existe algo de errado que ele detecta.
Não sei de deu para entender.
FEDERHEN 14/12/2012 08:11:30
#415951
Uma solução é gravar as ocorrências de exceção em uma tabela e o outro projeto acessar esta tabela e ler as ocorrências, usando um timer.
Quando o segundo projeto lê o registro de exceção você pode marcá-lo como lido para facilitar o tratamento das próximas.
JALEXM 14/12/2012 09:29:14
#415952
Citação:

:
Uma solução é gravar as ocorrências de exceção em uma tabela e o outro projeto acessar esta tabela e ler as ocorrências, usando um timer.
Quando o segundo projeto lê o registro de exceção você pode marcá-lo como lido para facilitar o tratamento das próximas.



OK.
O problema é que para o prog. A ler a tabela usando um timer vai esbarrar no fato de que até mesmo um timer de API não funciona quando está sendo feita uma consulta pesada pela rede.
Estou dizendo que os timers não funcionam, mas na verdade, suspeito que a aplicação é que deixa de responder a eventos durante consultas pesadas pela rede.
Se for isso, aplicações que precisam lidar com dados em tempo real ficam muito prejudicadas, ou até mesmo inviáveis, em VB6.
MARCELO.TREZE 14/12/2012 10:07:33
#415956
Resposta escolhida
Tópico encerrado , respostas não são mais permitidas