Horário de Verão

Projeto [x]Harbour - Compilador de código aberto compatível com o Clipper.

Moderador: Moderadores

rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Horário de Verão

Mensagem por rossine »

Olá pessoal,

Alguém sabe como mudar no registro do windows, via código, para não ajustar o horário de automaticamente ?

Obrigado,

Rossine.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
Pablo César
Usuário Nível 7
Usuário Nível 7
Mensagens: 5312
Registrado em: 31 Mai 2006 10:22
Localização: Curitiba - Paraná

Horário de Verão

Mensagem por Pablo César »

Segundo o que diz a Microsoft Aqui, a chave:

HKEY_LOCAL_MACHINE\System\CurrentControlSet\Control\TimeZoneInformation

Deve ser adicionado um NOVO (botão direito encima da chave acima) valor DWORD com o nome DisableAutoDaylightTimeSet com valor 1

Teria que verificar se nessa chave existe e também se aplica-se aos outros usuários cadastrados do Windows.
Só não tenho como ver como fazer isso em Harbour agora, pois ainda estou sem o meu ambiente de trabalho por ter formatado meu PC.
Um clip-abraço !

Pablo César Arrascaeta
Compartilhe suas dúvidas e soluções com todos os colegas aqui do fórum.
Evite enviar as dúvidas técnicas por MPs ou eMails, assim todos iremos beneficiar-nos.
rossine
Usuário Nível 3
Usuário Nível 3
Mensagens: 325
Registrado em: 06 Ago 2007 09:57
Localização: Divinópolis-MG

Horário de Verão

Mensagem por rossine »

Olá Pablo,

Primeiramenteo obrigado pela informação.

Abaixo deixo minha função. Nela eu retorno se o computador está no horário de verão e também ativo/desativo o checkbox do Ajuste automático do horário de verão:

Código: Selecionar todos

*******************
function TESTE_HVER( lEntra )
*******************

local oReg, cvar := iif( IsSeven(), "DynamicDaylightTimeDisabled", "DisableAutoDaylightTimeSet" )
local nRet

oReg := TReg32():New( HKEY_LOCAL_MACHINE, "SYSTEM\CurrentControlSet\Control\TimeZoneInformation" )

if valtype( lEntra ) != "L"
   nRet := oReg:Get( "ActiveTimeBias", 0 )
   oReg:Close()
   return iif( nRet = 120, .T., .F. ) // 180 = Horário de verão desativado / 120 = Horário de verão ativado
endif

oReg:Set( cVar, iif( lEntra, 0, 1 ) )  // 0 = Para Marcar o horario de verao / 1 = Para Desmarcar o horario de verao

nRet := oReg:Get( "ActiveTimeBias", 0 )

oReg:Close()

return iif( nRet = 120, .T., .F. ) // 180 = Horário de verão desativado / 120 = Horário de verão ativado
Abraços,

Rossine.
Rossine.

Harbour 3.4, MingW / Msvc, QT, Qt5xhb, GtQtc, DbfCdx, MySql/MariaDB.
Avatar do usuário
JoséQuintas
Administrador
Administrador
Mensagens: 20267
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP

Horário de Verão

Mensagem por JoséQuintas »

Pra quem achou útil a função, pode acrescentar:

Código: Selecionar todos

nRet := oReg:Get( "ActiveTimeBias", 0 ) 
nRet2 := oReg:Get("Bias",0)
nDif := nRet2 - nRet

If nRet == nRet2
   ? "Horário de verão desativado"
Else
   ? "Horario de verão ativado"
   ? "Configurado para " + iif(nDif > 0, "adiantar","atrasar") + " " + Ltrim(Str(oDif)) + " Minutos"
Endif
José M. C. Quintas
Harbour 3.2, mingw, gtwvg mt, fivewin 25.04, multithread, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui mt), (hmg3), (hmg extended), (oohg), PNotepad, ASP, stored procedure, stored function, Linux (Flagship/harbour 3.2)
"The world is full of kings and queens, who blind our eyes and steal our dreams Its Heaven and Hell"

https://github.com/JoseQuintas/
Responder