none
Bloquear tela do computador com C# RRS feed

  • Pergunta

  • Boa tarde,

    preciso de ajuda para desenvolver em c# algo que quando clicar no botão de COMEÇAR, após atingir 10 min abra uma tela na frente para deixar o computador inoperante mesmo sem conseguir finalizar a tarefa, e só conseguirá desbloquear informando uma senha. Detalhe principal é este, que não seja possível finalizar de nenhuma forma, pensei em fazer com q abra uma janela por cima de qualquer janela já aberta ou que poderá ser aberta.

    No aguardo.

    Conheço o basico de C#.

    Obrigado.

    segunda-feira, 2 de janeiro de 2017 16:49

Respostas

  • Olá,

    Não deu pra entender o que realmente você precisa.

    O usuário estará usando seu software e após 10 min uma tela irá abrir na frente da sua janela principal, impedindo de continuar mexendo no software, liberando apenas por digitar uma senha corretamente. Seria isso?

    Se for isso e estiver com uma aplicação Windows Forms, você pode simplesmente abrir um form na frente usando o ShowDialog() e impedindo o fechamento do form.

    Exemplo:

    Form principal do sistema:

            Timer timer1 = new Timer();
            public Form1()
            {
                InitializeComponent();
                
                timer1.Tick += Timer1_Tick;
                timer1.Interval = 600000;
                timer1.Start();
            }
    
            private void Timer1_Tick(object sender, EventArgs e)
            {
                timer1.Stop();
                FormSenha f2 = new FormSenha();
                f2.ShowDialog();
            }

    Form de bloqueio com senha:

    É preciso implementar a verificação de senha e adicionar o evento FormClosing com o seguinte código:

    private void FormSenha_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = true;
    }

    No caso de sucesso (ao acertar a senha) e quiser fechar a tela de bloqueio, use esse código:

    this.Close();

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 2 de janeiro de 2017 17:13

Todas as Respostas

  • Olá,

    Não deu pra entender o que realmente você precisa.

    O usuário estará usando seu software e após 10 min uma tela irá abrir na frente da sua janela principal, impedindo de continuar mexendo no software, liberando apenas por digitar uma senha corretamente. Seria isso?

    Se for isso e estiver com uma aplicação Windows Forms, você pode simplesmente abrir um form na frente usando o ShowDialog() e impedindo o fechamento do form.

    Exemplo:

    Form principal do sistema:

            Timer timer1 = new Timer();
            public Form1()
            {
                InitializeComponent();
                
                timer1.Tick += Timer1_Tick;
                timer1.Interval = 600000;
                timer1.Start();
            }
    
            private void Timer1_Tick(object sender, EventArgs e)
            {
                timer1.Stop();
                FormSenha f2 = new FormSenha();
                f2.ShowDialog();
            }

    Form de bloqueio com senha:

    É preciso implementar a verificação de senha e adicionar o evento FormClosing com o seguinte código:

    private void FormSenha_FormClosing(object sender, FormClosingEventArgs e)
    {
        e.Cancel = true;
    }

    No caso de sucesso (ao acertar a senha) e quiser fechar a tela de bloqueio, use esse código:

    this.Close();

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 2 de janeiro de 2017 17:13
  • Olá, se trata de um simulador de jogos. Preciso de uma aplicação que ao ligar o computador a aplicação de bloqueio se execute pedindo a senha para continuar e poder abrir o simulador ou até mesmo para qualquer outra tarefa. Informando a senha, será liberado por 10 min, o cliente vai usar o simulador e em 10 min irá bloquear abrindo a tela na frente pode ser um form ou qualquer coisa. Para liberar deverá novamente informar a senha. Depois quero incluir um banco de dados para registrar a quantidade de vezes que foi digitado a senha por dia... mas é um segundo passo.

    O detalhe é que quando bloqueado, o usuário não poderá finalizar o bloqueio, somente com a senha.

    Obrigado.


    segunda-feira, 2 de janeiro de 2017 17:23
  • Pois bem, talvez tenha que fazer alguma mudança, porém a ideia inicial e o caminho que deve seguir eu postei na resposta anterior.

    Espero ter ajudado!

    Valeu!


    Se a resposta for relevante ou tenha resolvido seu problema, marque como útil/resposta!

    André Secco
    Microsoft MVP & MSDN Tech Advisor
    Blog: http://andresecco.com.br
    GitHub: http://github.com/andreluizsecco
    Twitter: @andre_secco

    segunda-feira, 2 de janeiro de 2017 17:31