none
Alerta no Sistema C# RRS feed

  • Pergunta

  • Olá,

    Trabalho com um sistema em Windows Forms C#, nesse sistema existe vários usuários, inclusive o Administrador, gostaria de saber se existe alguma forma de ser enviado uma mensagem com o usuário Administrador para todos os usuários que estão logado no sistema naquele momento, ex: (Favor deslogarem do sistema por 5 segundos e retornarem para que seja feito a atualização do mesmo.)

    Obrigado.

    Att,

    Rafael

    terça-feira, 29 de outubro de 2013 13:59

Respostas

  • Assim seria algo simples:

    Só quem teria acesso a essa tela é os do tipo Administrador do Sistema! Só lembrando que essa tela embaixo tem um Controler Timer por favor adicione!!!

    Código dessa tela:

    private void Form2_Load(object sender, EventArgs e)
    {
    	Alerta.Mensagem = string.Empty;
    	TimeMensagem.Enabled = true;
    }
    private void ButLimparMensagem_Click(object sender, EventArgs e)
    {
    	TxtMensagem.Text = string.Empty;
    	Alerta.Mensagem = string.Empty;
    }
    
    private void ButEnviarMensagem_Click(object sender, EventArgs e)
    {
    	Alerta.Mensagem = TxtMensagem.Text;
    }
    
    private void TimeMensagem_Tick(object sender, EventArgs e)
    {
    	if (String.IsNullOrEmpty(Alerta.Mensagem) == false)
    	{
    		TimeMensagem.Enabled = false;
    		MessageBox.Show(Alerta.Mensagem, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Stop);
    		TimeMensagem.Enabled = true;
    	}
    }
    Ou seja enviou a mensagem todos recebem!!! mas, deve ser colocado no formulario de Menu aonde todas as mensagem serão enviadassssssssssss!


    Fúlvio Cezar Canducci Dias

    terça-feira, 29 de outubro de 2013 19:30

Todas as Respostas

  • Rafael, isso tem de ser programado tb, um modo de fazer é criar uma tabela ou arquivo(config) com a data da ultima e na inicialização vc faz essa verificação.

    --Rafael Albuquerque

    terça-feira, 29 de outubro de 2013 15:46
  • Crie uma classe com uma Variavel to tipo Static e nele um propriedade Static do Mensagem  e um temporizador (timer)

    de tempos em tempos você faz uma verificação simples se essa mensagem é diferente de "" ou null!

    se sim mostre uma splash pedindo que o pessoal saia ou até então que em 5 minutos será fechado automaticamente!

    public static class Alerta {
     public static string Mensagem {get;set;}
    }

    Agora adicione um Timer no Menu principal da sua aplicação e faça checagem em tempos em tempos!

    se essa variavel tiver algo se mostra o alerta e fala que vai reiniciar forçado em 5 minutos!


    Fúlvio Cezar Canducci Dias

    terça-feira, 29 de outubro de 2013 16:06
  • Fúlvio,

    Poderia dar um exemplo prático? Eu crio está classe, porem eu chamo esse método "Mensagem" em algum lugar especifico ou o que?

    Obrigado pela ajuda

    terça-feira, 29 de outubro de 2013 19:14
  • Assim seria algo simples:

    Só quem teria acesso a essa tela é os do tipo Administrador do Sistema! Só lembrando que essa tela embaixo tem um Controler Timer por favor adicione!!!

    Código dessa tela:

    private void Form2_Load(object sender, EventArgs e)
    {
    	Alerta.Mensagem = string.Empty;
    	TimeMensagem.Enabled = true;
    }
    private void ButLimparMensagem_Click(object sender, EventArgs e)
    {
    	TxtMensagem.Text = string.Empty;
    	Alerta.Mensagem = string.Empty;
    }
    
    private void ButEnviarMensagem_Click(object sender, EventArgs e)
    {
    	Alerta.Mensagem = TxtMensagem.Text;
    }
    
    private void TimeMensagem_Tick(object sender, EventArgs e)
    {
    	if (String.IsNullOrEmpty(Alerta.Mensagem) == false)
    	{
    		TimeMensagem.Enabled = false;
    		MessageBox.Show(Alerta.Mensagem, this.Text, MessageBoxButtons.OK, MessageBoxIcon.Stop);
    		TimeMensagem.Enabled = true;
    	}
    }
    Ou seja enviou a mensagem todos recebem!!! mas, deve ser colocado no formulario de Menu aonde todas as mensagem serão enviadassssssssssss!


    Fúlvio Cezar Canducci Dias

    terça-feira, 29 de outubro de 2013 19:30
  • Se os usuários estiverem rodando a aplicação em máquinas da intranet, internet você vai precisar de alguma técnica IPC pra enviar essas informações para as aplicações, basicamente sua aplicação vai ser uma aplicação Client x Server...

    Pra fazer isso você pode utilizar alguma das técnicas, frameworks abaixo

    Socket

    WCF

    Named Pipes


    Leonardo Lourenço Silva


    terça-feira, 29 de outubro de 2013 19:49
  • Eu peço desculpas realmente não me atentei a isso!

    Se pode usar também o Banco de Dados! também já fiz assim!

    Desculpa talvez minha solução não surta o resultado esperado!

    Pode utilizar isso que o Leonardo falou ou + Banco!!!


    Fúlvio Cezar Canducci Dias

    terça-feira, 29 de outubro de 2013 19:52
  • Obrigado Fúlvio pela ajuda, fiz da forma que você disse... porem criei duas tabelas no banco, a tabela que recebe a mensagem pra enviar ao sistema e a tabela de confirmação de recebimento de cada usuário logado no sistema.
    sexta-feira, 1 de novembro de 2013 12:45
  • Obrigado Fúlvio pela ajuda, fiz da forma que você disse... porem criei duas tabelas no banco, a tabela que recebe a mensagem pra enviar ao sistema e a tabela de confirmação de recebimento de cada usuário logado no sistema.
    Perfeito! Parabéns!

    Fúlvio Cezar Canducci Dias

    sexta-feira, 1 de novembro de 2013 18:30