Página 1 de 1
Atualizar data e hora do PC
Enviado: 12 Jan 2008 09:54
por Netavin
Bom dia amigos!!
Procurei por uma solução nos post´s sobre o assunto mas não encontrei.
Ontem tive uma experiência enquanto orientava o uso do programa. O sistema não aceitava a data que eu digitava(data do dia atual). De imediato verifiquei qua a data do PC estava atrazada em 3 dias. Após a atualização ficou td bem.
Então, gostaria de saber se é possível, na abertura do sistema, pedir ao usuário para verificar se a data e horas estão atualizadas. Ou se há outro método de se corrigir isto.
Abraço a todos e bom final-de-semana.
Netavin
Enviado: 12 Jan 2008 15:09
por Maligno
Eu estou usando a biblioteca WAPI (script PHP) pra acessar a internet e pegar data e hora do meu servidor. Não sei se a data e hora são exatas, mas preciso apenas de uma data mais "confiável" para fazer controle de licenciamento. Funciona 100%.
Enviado: 12 Jan 2008 15:19
por Maligno
Aliás, se quiser fazer um teste, clique
aqui para ver no seu browser a hora e data do meu servidor no formato YYYYMMDD;HHMMSS.
Isso pelo seu browser. Se for querer testar pela biblioteca WAPI seria bem simples. Exemplo:
Código: Selecionar todos
set date british
set century off
*
if IsInternet()
cSrv := "buzinello.com"
cRet := ""
if DLoadFile("www."+cSrv+"/tmp/php/servtime.php",@cRet)
? "No servidor " + cSrv + ":"
? "--------------------------"
? "Date: " + DtoC(StoD(Left(cRet,8)))
? "Time: " + Transf(Right(cRet,6),"@R 99:99:99")
else
? "ERRO desconhecido!"
end
else
? "ERRO: desconectado ou bloqueado pelo firewall!"
end
?
A função
IsInternet() verifica se existe uma conexão com a internet e a função
DLoadFile() faz o download de um arquivo qualquer. No presente caso, o script PHP é interpretado pelo servidor e transformado numa página HTML, cujo conteúdo é descarregado para a variável
cRet (se fosse preciso, também poderia ser armazenado num arquivo).
O script PHP, caso queira ver, é a parte mais simples de todas:
Enviado: 12 Jan 2008 15:30
por alaminojunior
Se vc desconfia da maquina que não está mantendo data e hora, troque a bateria da placa-mãe.
Se mesmo assim não fununciar, ponha um batch para fazer o acerto logo no inicio.
Ou pegando carona na dica do Maligno, se for uma maquina cliente, sincronize o horario dela com um servidor, também com o uso de um batch, logo após logar na rede.
Enviado: 12 Jan 2008 16:30
por Maligno
Se for pro usuário consertar a data e hora na execução do programa, uma idéia é apresentar a ele uma janela com data e hora atuais com a opção de alteração. As funções SetDate() e SetTime() da CATools alteram o CMOS, mantendo os valores. Mas se há um atraso constante, talvez a bateria esteja nas últimas. Aí é melhor trocar de uma vez.
Enviado: 14 Jan 2008 09:19
por Netavin
Bom dia amigos !
Obrigado pelas dicas!
Tenham todos uma ótima semana!
[ ]´s
Netavin
Enviado: 14 Jan 2008 10:54
por Netavin
E aí Malígno !!
Meu amigo, fiz um pequeno teste no meu PC desta forma:
Set date brit
Dat:=date()
hr :="99:99"
Tone(1700,1)
@ 10,20 say "Verifique se a data está correta!"
@ 11,30 say date()
If Alert("Está correta ?",{"sim","nao"}) # 1
@ 10,20 clear to 11,60
@ 10,20 say "Informe a data correta: " get dat
Read
SetDate(dat)
Endif
Tone(1700,1)
@ 10,20 clear to 11,60
@ 10,20 say "Verifique se a hora está correta!"
@ 11,30 say time()
If Alert("Está correta ?",{"sim","nao"}) # 1
@ 10,20 clear to 11,60
@ 10,20 say "Informe a hora correta: " get hr pict "99:99"
Read
SetTime(hr)
Endif
quit
Porém a data e hora do sistema não se altera. Estou fazendo besteira ?
[ ]´s
Netavin
Enviado: 14 Jan 2008 11:08
por Maligno
Acabei de testar. Por algum estranho motivo, SetTime() não funcionou no meu XP Pro. Mas SetDate() funcionou certo.
Olhando seu código, percebi que a variável dat está sendo preenchida corretamente, e do tipo date. Só faltou o segundo parâmetro da função SetDate(), que ao que parece, serve para atualizar o CMOS. Tente informar TRUE.
Enviado: 14 Jan 2008 14:06
por Netavin
ok Malígno!
Obrigado!
Vou correr atrás.
[]´s
Netavin