TROCA DE MENSAGENS VIA SISTEMA

FUTURA 20/06/2011 17:54:52
#377276
pessoal, é o seguinte, um cliente quer fazer troca de mensagens via sistema e q as mesmas fiquem registradas no banco de dados, fiz um esquema onde através de um timer no MDI, fazia leitura de novas mensagens, e avisava com um icone no systray, até ai blz...era pra funcionar tudo certinho, se o timer não ficasse inativo, qdo são feitos alguns processos no sistema.....vcs tem alguma dica ???...pensei em fazer um exe fora do sistema, mas ai queria pegar o usuário logado no sistema principal, assim através do shell daria o start nesse EXE de mensagens passando o código do usuário pra ele......teria como essa troca de informação entre 2 exes ??...
TECLA 20/06/2011 20:34:51
#377284
Seria somente passar o USUÁRIO para o outro EXE?
Simples, dentre as inúmeras alternativas, você pode fazer usando o COMMAND, arquivo TXT / XML, registro do WINDOWS... e por aí vai.
FUTURA 21/06/2011 08:34:45
#377333
sim, somente passar o usuario, pois passando o código do usuário que esta operando o sistema principal, ja consigo pesquisar as mnsagens no bd....como fazer por command ou registro do windows ?
MARCELO.TREZE 21/06/2011 08:44:59
#377334
FUTURA, eu não tenho tempo agora para pesquisar, mas andei pensando nisso e acho que com o WINSOCK bastaando saber o ip da máquina, da para mandar um comando, mas só tenho a idéia até agora, mas seria algo assim:

mesclar a idéia do banco de dados, com o winsock, atualmente vc tem de criar um timer para verifificar se existe uma mensagem,.

na minha idéia seria colocar uma função para verificar se existe mensagem e com o winsock executar esta função no computador desejado, não tenho certeza mas acho possivel desta forma
RIQUINHORICO07 21/06/2011 14:31:10
#377391
FUTURA,

tenho um sistema meio parecido, se lhe for útil, faça as adaptaçoes

NO PROGRAMA PRINCIPAL

Call Shell(cc & [Ô]nomedoexe.exe PARAMETRO[Ô], vbNormalFocus)
- no [Ô]parametro[Ô], é onde vc irá passar o nome do usuario
==================================================================
E NO FORM LOAD DO PROG Q SERÁ ABERTO

Dim Usuario as String
Usuario = command
=========================================

e pronto !!!
No meu prog, no parametro, passo o ANO e um SERIAL e na hora de abrir faço
Ano = right(command,4) e
SERIAL = left(command,3) , assim, o programa abre o caption com o ANO passado e o SERIAL é p nao deixar outro programa executar este segundo executavel sem ser pelo primeiro executavel.

Espero q tenha ajudado e qualquer dúvida, poste !!
FUTURA 21/06/2011 14:49:09
#377399
isso riquinho, é exatamente isso, com alguns outros tratamentos, o problema é q ao passar o código do usuário como parametro, ao invés de ir o valor q esta na variavel, vai indo o nome da variavel, pq sera ?? ex:

Dim Wscoduser As String
Wscoduser = Rs!Codigo
Call Shell(App.Path & [Ô]\futura_sms.exe Wscoduser[Ô], vbNormalFocus)

no text do programa q recebe o parametro, esta [Ô]WSCODUSER[Ô], e não o código do usuário ( 1 ou 2 ou 3, tec)...
MARCELO.TREZE 21/06/2011 14:54:23
#377402
é porque vc tenm que passar a variavel corretamente assim

Dim Wscoduser As String
Wscoduser = Rs!Codigo
Call Shell(App.Path & [Ô]\futura_sms.exe [Ô][txt-color=#0000f0] & Wscoduser[/txt-color], vbNormalFocus)
FUTURA 21/06/2011 15:23:53
#377412
ok, até ai tudo certo......vcs sabem que conforme vai mexendo, vai aparecendo.......agora q ja arrumei uma maneira de colocar o segundo exe no ar, e só para usuários habilitados, tenho q pensar em qdo o usuário sair do exe principal, nesse caso o segundo exe não pode ficar operando no systray, então pensei em 2 opções, ou arrumar um jeito de tirar ele do ar, qdo o exe pricipal fizer log off , ou passar um parametro de código nulo para o segundo exe, assim o mesmo não vai operar sem código válido....o q vcs achama melhor ?........na verdade acho q teria q tirar o exe2 do ar, pois ele recebe o parametro do exe1 no load...sera q da ?.......caso não de, acho q a opção vai ser mesmo gravar em um txt em c:\ , assim da pra colocar código e tirar, e o segundo exe, faz a leitura toda vez q vai consultar no banco....
Tópico encerrado , respostas não são mais permitidas