Enviar mensagem em Rede - netsend

Delphi

29/09/2003

tenho um sistema em ib6 e d5,esta na rede,vários usuarios estão usando,e eu gostaria de enviar mensagens a todos que estivessem com o exe do sistema rodando.
eu construi um form no aplicativo e estou usando o seguinte código
winexec(´netsend´+ ´nome da maquina´ + ´mensagen´),sw_hide;
sendo que onde esta o nome da maquina eu pucho dse um listbox,e a mensagen eu pucho de um memo,más não dá certo,será que vc pode me ajudar,me dando algun exemplo ou me indicando alguma fonte de consulta.
obrigado!!


:arrow: [color=red:3b19a637eb]Título alterado pelo Moderador oTTo. Removido: ´enviar mensagen.... ´.[/color:3b19a637eb]
:idea: [color=blue:3b19a637eb]Seja mais claro no título.[/color:3b19a637eb]
:idea: [color=blue:3b19a637eb][url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=16976]Saiba como obter resposta rápida..[/url][/color:3b19a637eb]
:idea: [color=blue:3b19a637eb]Leia sempre [url=http://delphiforum.icft.com.br/forum/viewtopic.php?t=6689]Regras de Conduta.[/url][/color:3b19a637eb]


Jiu

Jiu

Curtidas 0

Respostas

Marconi

Marconi

29/09/2003

Eu tenho um sistema que troca mensagens entre usuários, além de um workflow que comunica a cada um as tarefas que estão em processo no momento, e que dependem deles dar continuidade.

Posso também mandar mensagens para todos.

O segredo é colocar no form principal uma função dentro de um timer que a cada x segundos verifica se há alguma coisa para o usuário e mostra se for o caso. Uma tabela controla todo o movimento de correspondencia e dá baixa nas lidas.

Espero ter ajudado.

Marconi


GOSTEI 0
Thales

Thales

29/09/2003

Marconi, fiquei interessado neste sistema de troca de mensagens. Poderia me enviar o codigo fonte??

Abraços


GOSTEI 0
Jiu

Jiu

29/09/2003

Marconi, séria de grande ajuda se você pudesse enviar esse código fonte pra gente...


GOSTEI 0
Tchoninho

Tchoninho

29/09/2003

Me desculpe mas [i:d65b3ff28d][b:d65b3ff28d]PUXAR[/b:d65b3ff28d][/i:d65b3ff28d] com [b:d65b3ff28d]CH[/b:d65b3ff28d] :?: :?: :?: :?: :?: :?: :?:


GOSTEI 0
Marconi

Marconi

29/09/2003

Vou dar uma limpada no código, pois está no meio de um workflow, depois eu publico aqui.

Mas o principio é simples. Quando desejar mandar uma mensagem voce registra ela em uma tabela que fica sempre aberta na rede, com a lista de usuários que vai receber e o escopo da mensagem. Pode ainda colocar campos para registrar a data de envio e se foi aberta ou não, etc.

Um timer no form principal de x em x segundos procura, neste mesmo arquivo, se tem alguma mensagem para o usuário logado na máquina. O usuário deve ter entrado com senha. Ao encontrar alguma que não foi lida, apresenta ao usuário com um ShowMessage ou MessageDLG. Ao fechar a mensagem é anotado que ela já foi lida.

O importante é que ao colocar ou ler mensagens se desabilite o timer, setando o ´enabled´ para false. Sempre voltar o ´enabled´ do timer para true quando terminar esta operação. Também não esquecer de manter o filtro da tabela acionado para selecionar apenas mensagens que tenham como destinatário o usuário, e que não tenham sido lidas. Quando o timer estiver desabilitado, desabilite tambem o filtro da tabela => Tabela.filtered:=false voltando quando reabilitar o timer.

Pode-se até melhorar tornando um email completo, habilitando o usuário a ler as mensagens já recebidas, apaga-las, etc. Aí, cada um usa a imaginação do jeito que quiser.

No meu sistema a verificação é efetuada a cada 10 segundos. Isto não sobrecarrega o sistema.

Todas as informações aparecem em um TOutline, que eu joguei na lateral direita da tela, tal qual o ICQ.

Se quiser saber como funciona a ferramenta OutLine procure em pesquisar, neste forum, que publiquei a resposta.

Boa Sorte

Marconi







Marconi


GOSTEI 0
Anicetojunior

Anicetojunior

29/09/2003

vc pode disponibilizar para mim esse programa ?


GOSTEI 0
Tatuweb

Tatuweb

29/09/2003

winexec(´netsend´+ ´nome da maquina´ + ´mensagen´),sw_hide;

Eu testei aqui e não deu erro. Verique se o serviço mensageiro está ativo e se vc não tá dando o comando errado.

Veja que entre o net e o send tem um espaço, entre send e o nome_da_maquina tem espaco e entre o nome_da_maquina e mensagem tem mais um espaço. Substitua ´nome_da_maquina´ por um ´*´; se funcionar é sinal que o problema não está na rotina.


GOSTEI 0
Otto

Otto

29/09/2003

tsendo que onde esta o nome da maquina eu pucho dse um listbox,e a mensagen eu pucho de um memo,más não dá certo,será que vc pode me ajudar,me dando algun exemplo ou me indicando alguma fonte de consulta. obrigado!!



certo, mas, como que vc esta pegando este nome seleciona no listbox, o erro pode este ai... tipo, testei aqui na empresa e funcionou perfeitamente..


cole aqui um fragmento pra que possamos analiza-lo melhor... :wink:


GOSTEI 0
POSTAR