Fórum Enviar mensagem em Rede - netsend #185059
29/09/2003
0
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
Curtir tópico
+ 0Posts
29/09/2003
Marconi
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
29/09/2003
Thales
Abraços
Gostei + 0
29/09/2003
Jiu
Gostei + 0
29/09/2003
Tchoninho
Gostei + 0
30/09/2003
Marconi
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
23/07/2004
Anicetojunior
Gostei + 0
23/07/2004
Tatuweb
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
26/07/2004
Otto
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
Clique aqui para fazer login e interagir na Comunidade :)