TROCA DE MENSAGENS VIA SISTEMA
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 ??...
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.
Simples, dentre as inúmeras alternativas, você pode fazer usando o COMMAND, arquivo TXT / XML, registro do WINDOWS... e por aà vai.
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 ?
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
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
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 !!
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 !!
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)...
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)...
é 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)
Dim Wscoduser As String
Wscoduser = Rs!Codigo
Call Shell(App.Path & [Ô]\futura_sms.exe [Ô][txt-color=#0000f0] & Wscoduser[/txt-color], vbNormalFocus)
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