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: 20416
Registrado em: 26 Fev 2007 11:59
Localização: São Paulo-SP
Curtiram: 1 vez

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, multithread, gtwvg, fivewin 25.12, dbfcdx, MySQL, ADOClass, PDFClass, SefazClass, (hwgui), (hmg3), (hmg extended), (oohg), PNotepad, ASP, (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