none
Identificar mudança de data do sistema RRS feed

  • Pergunta

  • há alguma forma de identificar se o usuário alterou a data do sistema dele ?
    Bruno Gaiola Domus & Lepton Des. Software
    segunda-feira, 2 de maio de 2011 17:21

Respostas

  • Ola Bruno,

    Eu solucionei uma vez esse problema de uma forma parecida com o que o Carlos informou... não é infalivel... mas dependendo do que voce que fazer pode servir

    using System;
    using System.Threading;
    using System.Windows.Forms;
    using WindowsFormsApplication1.Properties;
    
    namespace WindowsFormsApplication1 {
      static class Program {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() {
          var thread = new Thread(new ThreadStart(VerificarHorario));
          try {
            thread.Start();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
          } finally {
            thread.Abort();
          }
        }
    
        private static void VerificarHorario() {
          while (Thread.CurrentThread.ThreadState == ThreadState.Running) {
            if (DateTime.Now < Settings.Default.Timer) throw new Exception("Horario Alterado indevidamente");
            Settings.Default.Timer = DateTime.Now;
            Settings.Default.Save();
    
            Thread.Sleep(1000);
          }
        }
      }
    }
    
    
    • Marcado como Resposta Bruno Gaiola segunda-feira, 2 de maio de 2011 18:32
    segunda-feira, 2 de maio de 2011 18:24
    Moderador

Todas as Respostas

  • Bruno,

    Você pode comparar a data do usuário com uma data previamente armazenada ou que esteja em um servidor, por exemplo. No caso do servidor, você pode criar um webservice para retornar a data/hora atual e comparar com a do usuário.

    []s,


    Carlos dos Santos
    blog: www.carloscds.net 
    twitter: @cdssoftware

    segunda-feira, 2 de maio de 2011 17:29
  • Não, no meu caso estou falando somente de uma maquina local.

     


    Bruno Gaiola Domus & Lepton Des. Software
    segunda-feira, 2 de maio de 2011 18:04
  • Ola Bruno,

    Eu solucionei uma vez esse problema de uma forma parecida com o que o Carlos informou... não é infalivel... mas dependendo do que voce que fazer pode servir

    using System;
    using System.Threading;
    using System.Windows.Forms;
    using WindowsFormsApplication1.Properties;
    
    namespace WindowsFormsApplication1 {
      static class Program {
        /// <summary>
        /// The main entry point for the application.
        /// </summary>
        [STAThread]
        static void Main() {
          var thread = new Thread(new ThreadStart(VerificarHorario));
          try {
            thread.Start();
            Application.EnableVisualStyles();
            Application.SetCompatibleTextRenderingDefault(false);
            Application.Run(new Form1());
          } finally {
            thread.Abort();
          }
        }
    
        private static void VerificarHorario() {
          while (Thread.CurrentThread.ThreadState == ThreadState.Running) {
            if (DateTime.Now < Settings.Default.Timer) throw new Exception("Horario Alterado indevidamente");
            Settings.Default.Timer = DateTime.Now;
            Settings.Default.Save();
    
            Thread.Sleep(1000);
          }
        }
      }
    }
    
    
    • Marcado como Resposta Bruno Gaiola segunda-feira, 2 de maio de 2011 18:32
    segunda-feira, 2 de maio de 2011 18:24
    Moderador