Jump to content
diego_10

VB.Net + formulario para verificar quem esta ligado

Recommended Posts

diego_10

Boas,

A minha aplicação tem um formulario que verifica quem esta a utilizar a aplicação, isto esta feito da seguinte maneira:

Na base de dados na tabela utilizadores tenho um campo do tipo Bit para guardar quem esta ligado, quando o utilizador entra o campo e actualizado na base de dados transmitindo assim quem esta ligado na aplicação, para voltar a actualizar o campo esta a função num botão que sai da aplicação,ou seja, quando o utilizador pressiona o botão sair ele corre a função e actualiza a base de dados.

O meu problema é que o utilizador tem a aplicação aberta e vai ao menu iniciar no windows e faz terminar sessão sem desligar a aplicação, como tenho maneira de ver se a aplicação está aberta ou não para poder fazer o update na base de dados?

Cumps a todos!

Share this post


Link to post
Share on other sites
ribeiro55

Podes forçar a aplicação a actualizar a base de dados quando é disparada uma acção externa que signifique terminar a aplicação, como um "log off" do utilizador da máquina.

Isto não resolve o teu problema, mas minimiza-o.

Não estou a lembrar-me de nenhuma solução de fácil implementação, mas penso que a maioria passe por análise de processos a correr e uma aplicação externa ou serviço.

Talvez alguém se lembre de alguma coisa melhor.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites
diego_10

Boas,

Pois, já estive a pesquisar e encontrei algum pessoal a explicar que a melhor forma e verificar os processos a deccorrer.

Mas penso que actualizando a base de dados quando na maquina e feito um "log off" resolve o meu problema, mas em que evento na aplicação devo fazer isso?

Cumps

Share this post


Link to post
Share on other sites
Caça

Vê se o evento Shutdown da aplicação é disparado quando terminas o processo. Se for resolve o teu problema.

EDIT: Vê aqui


Pedro Martins

Não respondo a duvidas por PM

Share this post


Link to post
Share on other sites
ribeiro55

Dependendo da forma de fecho da tua aplicação ("Last form closed" ou "Startup form closed") deverás acrescentar lógica no handler do evento Form_Closing.

Os argumentos (tipicamente [auto-gerado] com a variável "e") permitem-te proceder a acções consoante o tipo de sinal de exit que a aplicação está a receber: Log off, shutdown, user clicou no "X", etc.

Poderás então tentar correr um comando na base de dados a essa altura.

Isto não resolve o teu problema por completo pois eu posso arrancar a ficha da tomada.

Penso que terás de implementar uma espécie de tempo de sessão que vai actualizando de x em x tempo enquanto a aplicação está a correr.

Depois na base de dados corres um evento temporizado que vai verificar, nos utilizadores supostamente ligados, qual é que tem a última actualização de data para além de um determinado valor. (Imagina que a aplicação actualiza de 10 em 10 minutos. Basta verificares se a última actualização ocorreu há mais de 10 minutos)

A que tiver, troca a flag.


Sérgio Ribeiro


"Great coders aren't born. They're compiled and released"
"Expert coders do not need a keyboard. They just throw magnets at the RAM chips"

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now

×
×
  • Create New...

Important Information

By using this site you accept our Terms of Use and Privacy Policy. We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.