Página 1 de 1

Horário de Verão

Enviado: 20 Out 2011 14:46
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.

Horário de Verão

Enviado: 20 Out 2011 21:32
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.

Horário de Verão

Enviado: 21 Out 2011 11:21
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.

Horário de Verão

Enviado: 21 Out 2011 12:50
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