identificar quando o Relógio do windows foi alterado.

1,105 views
Skip to first unread message

Jefferson Lopes

unread,
Jan 11, 2010, 7:53:52 AM1/11/10
to dotn...@googlegroups.com
Pessoal, preciso ser notificado quando o relógio do windows foi alterado por um usuário qualquer.

Ex:
Tenho um sistema que efetua calculos pela hora do windows, mas esta deveria ser fiel.
Não tem como ser fiel, porque o usuário nesse caso tem permissão de alterar e não posso mudar isso, gostaria de fazer um serviço ou uma aplicação que identifique quando o relógio for alterado e notifique o administrador de alguma forma.
Email ou mensagem na tela.

estou utilizando VB.net com SQL Server na aplicação do cliente e
tentei fazer um serviço que verifica a hora atual de segundo em segundo dentro de uma tread comparando com uma variável auxiliar que recebe também a hora e sempre verifica se tem diferença acima de 30 segundos mas esse loop atraza não funcionando 100%

Se tiverem alguma outra ideia agradeço desde já a todos.

abaixo segue o código principal do serviço que fiz.
aceito infinitas ideias.



Verifica Relógio




Imports System
Imports System.Timers
Imports System.Threading
Imports System.IO.Directory
Imports System.Data
Imports System.text
Imports System.Data.SqlClient
Imports System.IO
Imports System.IO.Compression
Imports System.Collections
Imports System.Collections.Generic
Imports Microsoft.VisualBasic
Imports System.Data.OleDb

Public Class VerificaRelogio
    Public dataHora As DateTime
    Public inicio As DateTime
    Public datahoraVelha As DateTime
    Private timer As New System.Timers.Timer()
    Dim Segundos As Double
    Dim Minutos As Double
    Dim Aux As Double = 0
    Private oTimer1 As System.Threading.Timer
    Dim myLog As New EventLog

    Private conn As SqlConnection
    Private connectionString As String
    Private cn As SqlConnection
    Private cm As New SqlCommand

    Private Servidor As String = Environment.MachineName & "\SQLEXPRESS"
    Private NomeBanco As String = "SAMACP"
    Private Usuario As String = "sa"
    Private Senha As String = "dinheiro"


    Protected Overrides Sub OnStart(ByVal args() As String)
        EventLog.WriteEntry("Serviço iniciado em: " & DateTime.Now, System.Diagnostics.EventLogEntryType.Information)
        inicio = DateTime.Now
        dataHora = DateTime.Now
        datahoraVelha = DateTime.Now

        Dim oCallback1 As New TimerCallback(AddressOf verificaHorario)
        oTimer1 = New System.Threading.Timer(oCallback1, Nothing, 2000, 1000)
    End Sub
    Public Sub verificaHorario(ByVal state As Object)
        Try
            Segundos = DateDiff("S", datahoraVelha, dataHora)
            If Segundos > Aux Or Segundos < Aux Then
                EventLog.WriteEntry("Hora Inicial :" & inicio & " Hora Auxiliar: " & datahoraVelha & ",Hora Atual: " & dataHora & " Diferença: " & Segundos & " Segundos  Espaço entre erros: &  " & DateDiff("M", dataHora, inicio) & " Minutos", System.Diagnostics.EventLogEntryType.Information)
                Aux = Segundos
            End If

            If Segundos >= 30 Or Segundos <= -30 Then
                Dim logRelogio As String = "RA: " & datahoraVelha & "-" & dataHora & "  Diferença: " & DateDiff("M", datahoraVelha, dataHora) & " Minutos"
                Try
                    Dim objStreamReader As New StreamReader("C:\Arquivos de programas\Samati Controle de permanencia\ParametrosConexao.cnn", System.Text.Encoding.GetEncoding(1252))
                    Dim strLinha As String
                    While Not objStreamReader.EndOfStream
                        strLinha = objStreamReader.ReadLine.ToString
                        If strLinha.Contains("SERVIDOR=") Then
                            strLinha = strLinha
                            Servidor = strLinha.Replace("SERVIDOR=", "")
                        ElseIf strLinha.Contains("BANCO=") Then
                            strLinha = strLinha
                            NomeBanco = strLinha.Replace("BANCO=", "")
                        ElseIf strLinha.Contains("USUARIO=") Then
                            strLinha = strLinha
                            Usuario = strLinha.Replace("USUARIO=", "")
                        ElseIf strLinha.Contains("SENHA=") Then
                            strLinha = strLinha
                            Senha = strLinha.Replace("SENHA=", "")
                        End If
                    End While

                    connectionString = "Data Source=" & Servidor & ";Initial Catalog=" & NomeBanco & ";Persist Security Info=True;User ID=" & Usuario & ";Password=" & Senha & ";MultipleActiveResultSets=True"
                    cn = New SqlConnection(connectionString)
                    cm.Connection = cn
                    cn.Open()
                    cm.Connection = cn
                    cm.CommandText = "UPDATE tbConfiguracoes SET RelogioAlterado='true')"
                    If cm.ExecuteNonQuery() > 0 Then
                        EventLog.WriteEntry("Mudou o status para relogio alterado no banco")
                    Else
                        EventLog.WriteEntry("Nao conseguiu alterar o staus do relógio")
                    End If
                Catch ex As Exception
                    EventLog.WriteEntry(ex.ToString)
                    EventLog.WriteEntry("Nao conseguiu alterar o staus do relógio")
                End Try
                Shell("net stop VerificaRelogio", AppWinStyle.NormalFocus)
            End If
            dataHora = DateTime.Now
            datahoraVelha = datahoraVelha.AddMilliseconds(1013.87)
        Catch ex As Exception
            EventLog.WriteEntry("Erro inesperado: " & ex.ToString)
        End Try
    End Sub

    Protected Overrides Sub OnStop()
        Try
            oTimer1.Dispose()
            EventLog.WriteEntry("Serviço finalizado em: " & DateTime.Now, System.Diagnostics.EventLogEntryType.Information)
        Catch ex As Exception
            ex.ToString()
        End Try
    End Sub

End Class

--
Jefferson Lopes
Analista de Sistemas
jeffe...@gmail.com
(31)8712-9234

Ricardo Noronha de Menezes

unread,
Jan 11, 2010, 8:12:39 AM1/11/10
to dotn...@googlegroups.com
Cara pensei em algumas coisas, mas a melhor que consegui foi pensar em criar um serviço para fornecer essa hora a sua aplicação em algum lugar que o usuário não possa alterar (servidor, web service, etc.) assim ficaria melhor para gerenciar isso e também se a máquina estiver em rede vai garantir um linha de tempo comum a todas as máquinas

O usuário pode nunca ter alterado o relógio mas se a bateria da placa mãe acabar o relógio vai ficar louco sempre que o usuário ligar o pc, ou também o relógio da estação pode ter estado sempre 10 minutos atrasado desde o momento da instalação da aplicação. Não sei se estes dois problemas afetam sua aplicação (pelo menos o primeiro afeta).




De: Jefferson Lopes <jeffe...@gmail.com>
Para: dotn...@googlegroups.com
Enviadas: Segunda-feira, 11 de Janeiro de 2010 9:53:52
Assunto: [.Net - BR] identificar quando o Relógio do windows foi alterado.
            EventLog.WriteEntry("Serviço finalizado em: " & DateTime..Now, System.Diagnostics.EventLogEntryType.Information)

        Catch ex As Exception
            ex.ToString()
        End Try
    End Sub

End Class

--
Jefferson Lopes
Analista de Sistemas
jeffe...@gmail.com
(31)8712-9234
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."

==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com


Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes

daniel carli

unread,
Jan 11, 2010, 8:26:20 AM1/11/10
to dotn...@googlegroups.com
cara isso da para se configurar via windows server

2010/1/11 Ricardo Noronha de Menezes <ricar...@yahoo.com.br>

Jefferson Lopes

unread,
Jan 11, 2010, 8:36:03 AM1/11/10
to dotn...@googlegroups.com
Obrigado Ricardo pelas sugestões.
As duas cituações que citou de alterações do relógio foram sim pensadas e neste caso é tranquilo o Administrador saberá que foi por esse motivo e fará manutenção de bateria ou de acerto do relógio e reiniciará aplicação.

quanto a servidor, a estrutura do cliente é minima, não tem condições de um servidor para controlar isso e nem pegar hora da web porque em alguns pontos de uso do sistema não tem internet e quando tem pode ocilar muito causando mais erro no funcionamento.

para centralizar entre as maquinas da rede, pego a hora pelo banco de dados que é comum a todas as maquinas gerando um horário unico mas lembrando que não é exclusivamente um servidor, é apenas a melhor maquina que também é frequentemente operado por um dos usuários.

O motivo principal de não poder alterar o relógio é o de o pessoal alterar para burlar os valores que são diretamente baseados no tempo que o cliente ficou no espaço.
o negócio do cliente funciona identico a um sistema de estacionamento apesar de não ser um.

assim se um dos funcionários alterar o relógio para reduzir o valor cobrado preciso apenas saber que foi alterado e quando.  emitindo uma mensagem no sitema e só.

assim pelo log mais proximo do momento de alteração consigo saber quem alterou.

SABEM ME DIZER COMO PEGAR UM LOG DO WINDOWS DAS ALTERAÇÕES DE RELÓGIO?  TALVEZ ASSIM POSSO COLOCAR UM SERVIÇO RODANDO DIRETO PEGANDO TODO LOG QUE FOR DE ALTERAÇÃO DE RELÓGIO.
ENCONTRANDO, O RELÓGIO FOI ALTERADO.
 TIVE ESSA IDEIA AGORA VOU PESQUISAR MAIS SOBRE.

CONTUDO CONTINUO NO AGUARDO DE MAIS SUGESTÕES

MAIS UMA VEZ OBRIGADO RICARDO NORONHA.

2010/1/11 Ricardo Noronha de Menezes <ricar...@yahoo.com.br>
Cara pensei em algumas coisas, mas a melhor que consegui foi pensar em criar um serviço para fornecer essa hora a sua aplicação em algum lugar que o usuário não possa alterar (servidor, web service, etc.) assim ficaria melhor para gerenciar isso e também se a máquina estiver em rede vai garantir um linha de tempo comum a todas as máquinas

Jefferson Lopes

unread,
Jan 11, 2010, 8:37:24 AM1/11/10
to dotn...@googlegroups.com
CARA INFELIZMENTE LÁ NÃO TEM ESSA INFRAESTRUTURA AINDA! E O TREM TEM QUE RODAR DE IMEDIATO POR ISSO TO BUSCANDO UMA OUTRA SOLUÇÃO PELO MENOS TEMPORAL. TENDEU.

MAS É 100% SUA DICA.

2010/1/11 daniel carli <dansa...@gmail.com>

Juliano Nunes

unread,
Jan 11, 2010, 8:53:49 AM1/11/10
to dotn...@googlegroups.com
Sugiro que faça 2 verificações.

A cada X segundos verifique se a data e hora atual é menor que a anterior (para garantir que o usuário não atrasou o relógio) e a cada X segundos verifique a hora do servidor e atualize a do cliente.

2010/1/11 Jefferson Lopes <jeffe...@gmail.com>

Hendrik Araujo

unread,
Jan 11, 2010, 9:01:05 AM1/11/10
to dotn...@googlegroups.com
Armazena a hora atual e sincroniza o horario com o servidor, depois verifica o horario armazenado com o horario sincronizado.

dái se houver diferença pega o usuário pelo rabo !!!! que ele tá tentando burla o ponto.

Robert Libotti

unread,
Jan 11, 2010, 9:17:12 AM1/11/10
to dotn...@googlegroups.com
Usa a data do sqlserver para fazer a comparação/sincronia : select getdate()
 
 
--
Ilusão é combustível de perdedores.
Quem quer fazer alguma coisa encontra um meio.
Quem não quer fazer nada, encontra uma desculpa.

Robert Libotti
Analista Desenvolvedor Java/.Net
Microsoft Certified Professional
Rio de Janeiro - Brasil

URL: http://www.libotti.com
TEL: 9782-6906


Mike Ditka  - "If God had wanted man to play soccer, he wouldn't have given us arms."

2010/1/11 Jefferson Lopes <jeffe...@gmail.com>

Ricardo Noronha de Menezes

unread,
Jan 11, 2010, 9:41:39 AM1/11/10
to dotn...@googlegroups.com
Bingooo.

Basta se inscrever no Evento Microsoft.Win32.SystemEvents.TimeChanged

Fiz um form de teste com o seguinte código:

Public Class Form1

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        AddHandler Microsoft.Win32.SystemEvents.TimeChanged, AddressOf mudouHora
    End Sub

    Sub mudouHora(ByVal sender As Object, ByVal e As EventArgs)
        MsgBox("Modou hora.")
    End Sub
End Class


De: Jefferson Lopes <jeffe...@gmail.com>
Para: dotn...@googlegroups.com
Enviadas: Segunda-feira, 11 de Janeiro de 2010 10:36:03
Assunto: Re: [.Net - BR] identificar quando o Relógio do windows foi alterado.

Obrigado Ricardo pelas sugestões.
As duas cituações que citou de alterações do relógio foram sim pensadas e neste caso é tranquilo o Administrador saberá que foi por esse motivo e fará manutenção de bateria ou de acerto do relógio e reiniciará aplicação.

quanto a servidor, a estrutura do cliente é minima, não tem condições de um servidor para controlar isso e nem pegar hora da web porque em alguns pontos de uso do sistema não tem internet e quando tem pode ocilar muito causando mais erro no funcionamento.

para centralizar entre as maquinas da rede, pego a hora pelo banco de dados que é comum a todas as maquinas gerando um horário unico mas lembrando que não é exclusivamente um servidor, é apenas a melhor maquina que também é frequentemente operado por um dos usuários.

O motivo principal de não poder alterar o relógio é o de o pessoal alterar para burlar os valores que são diretamente baseados no tempo que o cliente ficou no espaço.
o negócio do cliente funciona identico a um sistema de estacionamento apesar de não ser um.

assim se um dos funcionários alterar o relógio para reduzir o valor cobrado preciso apenas saber que foi alterado e quando.  emitindo uma mensagem no sitema e só.

assim pelo log mais proximo do momento de alteração consigo saber quem alterou.

SABEM ME DIZER COMO PEGAR UM LOG DO WINDOWS DAS ALTERAÇÕES DE RELÓGIO?  TALVEZ ASSIM POSSO COLOCAR UM SERVIÇO RODANDO DIRETO PEGANDO TODO LOG QUE FOR DE ALTERAÇÃO DE RELÓGIO.
ENCONTRANDO, O RELÓGIO FOI ALTERADO.
 TIVE ESSA IDEIA AGORA VOU PESQUISAR MAIS SOBRE.

CONTUDO CONTINUO NO AGUARDO DE MAIS SUGESTÕES

MAIS UMA VEZ OBRIGADO RICARDO NORONHA.

2010/1/11 Ricardo Noronha de Menezes <ricar...@yahoo.com.br>
Cara pensei em algumas coisas, mas a melhor que consegui foi pensar em criar um serviço para fornecer essa hora a sua aplicação em algum lugar que o usuário não possa alterar (servidor, web service, etc..) assim ficaria melhor para gerenciar isso e também se a máquina estiver em rede vai garantir um linha de tempo comum a todas as máquinas

Jefferson Lopes

unread,
Jan 11, 2010, 10:47:08 AM1/11/10
to dotn...@googlegroups.com
cara esse forum é do bão!  daqui já tirei muitas ideias.  as de comparação eu já tinha testado mas o relógio que eu criei virtualmente vai atrazando lentamente e quando dá umas 4 5 horas que ta rodando direto começa a atrazar significantemente  tipo mais de 30 segundos
ai já não posso usalo visto que 30 segundo já causa difernça nos calculos do sistema


a de pegar a hora do sqlserver tb não dá porque o Server de SQL server está em uma maquina com acesso dos usuários, na verdade uma das maquinas que executa o programa. pois como citei antes o cliente não provê de uma estrutura decente no momento para implantar imediatamente, e o sql server usa a hora desse pc.  OU NÃO??????   FICA UM QUESTIONAMENTO. POIS PELO QUE SEI ELE USA A HORA DO PC QUE ESTIVER INSTALADO.  

QUANTO AO SCRIPT QUE O RICARDO PASSOU VOU ESTUDA-LO.
POIS  ACREDITO QUE É O QUE EU TINHA PENSADO ANTES.
INTERCEPTAR QUANDO OS LOGS DO WINDOWS PARA ALTERAÇÃO DE RELÓGIO OCORREREM SE SIM RELÓGIO ALTERADO


VOU TESTAR E POSTO PRA FINALIZAR O POST  MUITO OBRIGADO PESSOAL SE SURGIR NOVAS IDEIAS MANDA AI QUE A GENTE VAI ANALIZANDO!  AQUI É UM ÓTIMO BRAINSTORM  RSSS  VALEU.

Hendrik Araujo

unread,
Jan 11, 2010, 11:05:51 AM1/11/10
to dotn...@googlegroups.com
Fica complicado porque vc não tem nenhuma base de referencia para pegar o horario.

Você pode bloquear o usuário para não alterar o relogio com Gpedit.msc.

2010/1/11 Jefferson Lopes <jeffe...@gmail.com>

Anderson Fraga

unread,
Jan 11, 2010, 8:06:40 AM1/11/10
to dotn...@googlegroups.com
Não seria melhor tu verificar com algum site governamental de data?
 
Uma lista destes:
 
Acessando um destes endereços via socket, será retornado algo como
    55207 10-01-11 13:02:42 00 0 0 929.7 UTC(NIST) *
no formato
    xxxxx  Ano-mês-dia hora:min:seg x segudos_extras? server_status segundos_extras zona_de_data
 
Com base nisso, tu tem a data. Então, basta converter para o horário brasileiro (+3).
 

Jefferson Lopes

unread,
Jan 12, 2010, 6:56:22 AM1/12/10
to dotn...@googlegroups.com
INFELIZMENTE NÃO POSSO FAZER ASSIM.
POIS 50% O AMBIENTE ONDE O SISTEMA VAI RODAR NÃO TEM INTERNET E ONDE TEM É MUITO INSTAVEL.

MAS SEM DÚVIDA UMA BOA SOUÇÃO PARA PROBLEMAS DO TIPO.
OBRIGADO PELA SUGESTÃO.

2010/1/11 Anderson Fraga <gro...@andersonfraga.net>

Ricardo Noronha de Menezes

unread,
Jan 12, 2010, 9:20:50 AM1/12/10
to dotn...@googlegroups.com
Jefferson aquele modelo de código que enviei não era o que procurava?


De: Jefferson Lopes <jeffe...@gmail.com>
Para: dotn...@googlegroups.com
Enviadas: Terça-feira, 12 de Janeiro de 2010 8:56:22
Assunto: Re: [.Net - BR] identificar quando o Relógio do windows foi alterado.
2010/1/11 Anderson Fraga <gro...@andersonfraga.net>
        EventLog.WriteEntry("Serviço iniciado em: " & DateTime.Now, System.Diagnostics.EventLogEntryType..Information)

Jefferson Lopes

unread,
Jan 13, 2010, 7:41:34 AM1/13/10
to dotn...@googlegroups.com
bom dia Ricardo.
não resolveu ainda não.
não testei com form porque não é viavel que o sistema só receba notificação de alteração no relógio se o form estiver aberto, pois o usuário poderia fechar o form alterar o relógio e abrir novamente assim a notificação passa batido.
com seu código tentei fazer um serviço que roda independente da minha aplicação mas com serviço não conseguiu interceptar o log de alteração do relógio.

a principio é isso!  mas to na cola aqui!  uma hora vou conseguir matar isso!

2010/1/12 Ricardo Noronha de Menezes <ricar...@yahoo.com.br>

Neryval Gmail

unread,
Jan 13, 2010, 8:30:46 AM1/13/10
to dotn...@googlegroups.com

Problemas no relógio, vc trata no Win Server,

 

Tem nos Polices do Win função para acertar o relógio das estações.

 

Se não for Win Server com domínio,  vc cria uma aplicação em forma de serviço, para monitorar os Log´s do Windows, pois toda vês que

Uma ação do sistema é feita, é gerado um log deste evento. isto acontece em todas as versões do Windows.

 

Em algum momento no passado já fiz isto.

 

Espero que te ajude.

Jefferson Lopes

unread,
Jan 13, 2010, 8:58:32 AM1/13/10
to dotn...@googlegroups.com
COM CERTEZA AJUDA NERYVAL
VOU ESTUDAR ISSO SIM!
VALEU


2010/1/13 Neryval Gmail <ner...@gmail.com>

Ricardo Noronha de Menezes

unread,
Jan 13, 2010, 11:45:09 AM1/13/10
to dotn...@googlegroups.com
Não cara só fiz em um form para testar se ele conseguia pegar o evento.

No código do form tudo que ele faz e configurar uma rotina para ser notificada sempre que o evento TimeChanged ocorrer.

Teoricamente você pode fazer esse rastreamento em qualquer tipo de aplicação, só se inscrever para o evento como está no form.

Vou tentar fazer um serviço aqui e postar o código para você.


De: Jefferson Lopes <jeffe...@gmail.com>
Para: dotn...@googlegroups.com
Enviadas: Quarta-feira, 13 de Janeiro de 2010 9:41:34
2010/1/11 Anderson Fraga <gro...@andersonfraga.net>
Imports System..Timers
"LISTA PHP" no Google Groups: http://groups.google.com..br/group/listaphp
E-mail do Grupo: list...@googlegroups.com

Ricardo Noronha de Menezes

unread,
Jan 13, 2010, 1:36:19 PM1/13/10
to dotn...@googlegroups.com
Cara vai em anexo um exemplo de Windows Service rastreando alterações no relógio.




http://www.linhadecodigo.com.br/Artigo.aspx?id=973&pag=3


De: Jefferson Lopes <jeffe...@gmail.com>
Para: dotn...@googlegroups.com
Enviadas: Quarta-feira, 13 de Janeiro de 2010 9:41:34
2010/1/11 Anderson Fraga <gro...@andersonfraga.net>
    55207 10-01-11 13:02:42 00 0 0 929..7 UTC(NIST) *

Ricardo Noronha de Menezes

unread,
Jan 13, 2010, 1:40:49 PM1/13/10
to dotn...@googlegroups.com
Cara segue em anexo um exemplo de Windows Service que rastreia alterações no relógio.

Segue aqui um link sobre como instalar e testar o windows services.

http://www.linhadecodigo.com.br/Artigo.aspx?id=973&pag=3


De: Jefferson Lopes <jeffe...@gmail.com>
Para: dotn...@googlegroups.com
Enviadas: Quarta-feira, 13 de Janeiro de 2010 9:41:34



--
Jefferson Lopes
Analista de Sistemas
jeffe...@gmail.com
(31)8712-9234
--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."

==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com.br/group/listaphp
E-mail do Grupo: list...@googlegroups.com
ExemploWindowsService.rar

Jefferson Lopes

unread,
Jan 13, 2010, 1:44:18 PM1/13/10
to dotn...@googlegroups.com
BOA TARDE RICARDO.
NÃO VEIO O ANEXO NÃO! 
SÓ VEIO O LINK EXPLICANDO COMO FAZER O SERVIÇO!
O SERVIÇO CONSEGUI FAZER MAS NÃO CONSIGO LER O LOG DO RELÓGIO DE JEITO NENHUM TENDEU?



2010/1/13 Ricardo Noronha de Menezes <ricar...@yahoo.com.br>

Ricardo Noronha de Menezes

unread,
Jan 13, 2010, 4:53:07 PM1/13/10
to dotn...@googlegroups.com
Segue anexo um exemplo de Windows Service que rastreia se o relógio foi alterado.

Vai aqui um link de artigo ensinando como configurar o Windows Service.

http://www.linhadecodigo.com.br/Artigo.aspx?id=973&pag=3


De: Ricardo Noronha de Menezes <ricar...@yahoo.com.br>
Para: dotn...@googlegroups.com
Enviadas: Quarta-feira, 13 de Janeiro de 2010 13:45:09
Assunto: Res: [.Net - BR] identificar quando o Relógio do windows foi alterado.

2010/1/11 Anderson Fraga <gro...@andersonfraga.net>
                            NomeBanco = strLinha..Replace("BANCO=", "")


Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - Celebridades - Música - Esportes--
==============================
Comunidade de desenvolvedores Dot Net no Brasil
".Net Br" no Google Groups: http://groups.google.com.br/group/dotnet_br/
E-mail do Grupo: dotn...@googlegroups.com
"Your Potential. Our Passion."

==============================
Comunidade de desenvolvedores PHP
"LISTA PHP" no Google Groups: http://groups.google.com..br/group/listaphp
E-mail do Grupo: list...@googlegroups.com
ExemploWindowsService.rar

Jefferson Lopes

unread,
Jan 15, 2010, 2:43:48 PM1/15/10
to dotn...@googlegroups.com
cara não consegui fazer funfar na minha maquina não!  o serviço rodou,  coloquei ele pra escrever uns logs de quando iniciou e quando parou, mas não recebe a notificação de alteração do relógio de jeito nenhum. 
maquina xp pro sem segredos.  

ai to resolvendo pelas configurações do windows mesmo!

Clique no Executar e digite gpedit.msc. Em seguida acesse: Configurações do Computador -> Configurações do Windows -> Diretivas Locais -> Atribuição dos Direitos do Usuários.

Nas opções mostradas à direita localize Alterar hora do sistema. Dê  dois cliques nessa opção e escolha quais usuários terão permissão para alterar a hora do sistema.

** Testado no Windows XP Professional


é isso por enquanto


abraço a todos







2010/1/13 Ricardo Noronha de Menezes <ricar...@yahoo.com.br>

Ricardo Noronha de Menezes

unread,
Jan 15, 2010, 4:06:50 PM1/15/10
to dotn...@googlegroups.com
O problema e que Windows Service não podem interagir com Interfaces de Usuário, pelo menos não sem algum conhecimento a mais, se alguém da lista souber sou todo ouvidos, mas coloquei ele para criar um log de texto e captura legal.

Acho que só seria útil se você criasse alguma espécie de log criado pelo WS e quando fosse fazer cálculos verificasse se não existe nenhum log desses em algum lugar (acho que para ser mais seguro BD seria bom).


De: Jefferson Lopes <jeffe...@gmail.com>
Para: dotn...@googlegroups.com
Enviadas: Sexta-feira, 15 de Janeiro de 2010 16:43:48
Assunto: Re: Res: [.Net - BR] identificar quando o Relógio do windows foi alterado.
2010/1/11 Anderson Fraga <gro...@andersonfraga.net>
Imports System..Collections
            EventLog.WriteEntry("Serviço finalizado em: " & DateTime.Now, System.Diagnostics.EventLogEntryType..Information)

Jefferson Lopes

unread,
Jan 16, 2010, 11:58:33 AM1/16/10
to dotn...@googlegroups.com
Cara, foi exatamente o que tentei fazer no código do primeiro comentario.
mas o relógio atraza dependendo da performance da maquina!  
em uma maquina boa da tudo certo  mas se por nas maquinas ferradas que o meu cliente vai usar   já fiz teste.   vai dar pau um atraz do outro!   mas o códiog ta ai prontinho.  só atraza!!!!  é isso  mas lá vou conseguir resolver com o esquema que mandei na última mensagem!


ai to resolvendo pelas configurações do windows mesmo!

Clique no Executar e digite gpedit.msc. Em seguida acesse: Configurações do Computador -> Configurações do Windows -> Diretivas Locais -> Atribuição dos Direitos do Usuários.

Nas opções mostradas à direita localize Alterar hora do sistema. Dê  dois cliques nessa opção e escolha quais usuários terão permissão para alterar a hora do sistema.

** Testado no Windows XP Professional 




2010/1/15 Ricardo Noronha de Menezes <ricar...@yahoo.com.br>
Reply all
Reply to author
Forward
0 new messages