Jump to content
Fivewin Brasil

Sincronizar hora com servidor internet


roberio

Recommended Posts

caso sirva pra alguem.


//net time /setsntp:"a.st1.ntp.br"

//net stop w32time

//net start w32time

Function SicronizaHora() //

Local Serv_a := "'a.st1.ntp.br'",;

Serv_b := "'b.st1.ntp.br'",;

Serv_c := "'c.st1.ntp.br'",;

Serv_d := "'d.st1.ntp.br'",;

Serva := "'a.ntp.br'",;

Servb := "'b.ntp.br'",;

Servc := "'c.ntp.br'",;

Servgps := "'gps.ntp.br'", Time1:=Time()

MYRUN( "net time /setsntp:"+&Serv_a+" && net stop w32time && net start w32time" )

MsgRun( "Sicronizando com servidor NTP.br...", "Aguarde!", { || ChamaMsgSicro(Time1) } )

Return nil

//------------------------------------------------------------------------------------------//

Function ChamaMsgSicro(Time1)

Do while .t.

If Left(Time1,5) # Left(Time(),5)

MsgInfo("Hora Anterior: "+Time1+CRLF+" Hora Atual: "+Time(), "Informativo!")

Exit

Endif

Enddo

Return nil

 

Function MYRUN( cComando )

Local oShell, RET

 

oShell := CreateObject( "WScript.Shell" )

RET := oShell:Run( "%comspec% /c " + cComando, 0, .T. )

oShell := NIL

 

Return iif( RET = 0, .T., .F. )

id=code>id=code>

testado com win2008

Link to comment
Share on other sites

caso sirva pra alguem.


//net time /setsntp:"a.st1.ntp.br"

//net stop w32time

//net start w32time

Function SicronizaHora() //

Local Serv_a := "'a.st1.ntp.br'",;

Serv_b := "'b.st1.ntp.br'",;

Serv_c := "'c.st1.ntp.br'",;

Serv_d := "'d.st1.ntp.br'",;

Serva := "'a.ntp.br'",;

Servb := "'b.ntp.br'",;

Servc := "'c.ntp.br'",;

Servgps := "'gps.ntp.br'", Time1:=Time()

MYRUN( "net time /setsntp:"+&Serv_a+" && net stop w32time && net start w32time" )

MsgRun( "Sicronizando com servidor NTP.br...", "Aguarde!", { || ChamaMsgSicro(Time1) } )

Return nil

//------------------------------------------------------------------------------------------//

Function ChamaMsgSicro(Time1)

Do while .t.

If Left(Time1,5) # Left(Time(),5)

MsgInfo("Hora Anterior: "+Time1+CRLF+" Hora Atual: "+Time(), "Informativo!")

Exit

Endif

Enddo

Return nil

 

Function MYRUN( cComando )

Local oShell, RET

 

oShell := CreateObject( "WScript.Shell" )

RET := oShell:Run( "%comspec% /c " + cComando, 0, .T. )

oShell := NIL

 

Return iif( RET = 0, .T., .F. )

id=code>id=code>

testado com win2008

Link to comment
Share on other sites

  • 1 year later...

Robério, gostei desta função, mas ela não está retornando a hora correta.

Supondo que a hora do meu micro seja: 12:05 hs

Altero para 12:00 hs

Mando sincronizar, ele me aumenta a hora em 1 minuto

ou seja 12:01

Windows 7.

Abs

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Galera porque este comando não funciona no Windows?

Estou tentando sincronizaro o Relógio direto pelo programa, mas ele me retorna sempre 1 minuto a mais e não o horário correto.


MYRUN( "net time /setsntp:time.windows.com" )

id=code>id=code>

Obg, abs

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Isto via programação em Windows 7 não vai nem a pau.

http://www.blog.crucial.com.br/post/Sincronize-automaticamente-o-relogio-do-Windows-com-a-Hora-Legal-do-Brasil.aspx

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Senhores, relacionado ao assunto e para efeito de estudo segue link de um fonte:

http://www.pctoledo.com.br/forum/filebase.php?d=1&id=173&c_old=0&what=c&page=1

que captura a hora do site: http://www.horariodebrasilia.org/

O fonte não é em Five, é em Minigui, mas não é de difícil entendimento.

O crédito do mesmo é do Pablo César.

[]´s

Link to comment
Share on other sites

citação:

Senhores, relacionado ao assunto e para efeito de estudo segue link de um fonte:

http://www.pctoledo.com.br/forum/filebase.php?d=1&id=173&c_old=0&what=c&page=1

que captura a hora do site: http://www.horariodebrasilia.org/

O fonte não é em Five, é em Minigui, mas não é de difícil entendimento.

O crédito do mesmo é do Pablo César.

[]´s


id=quote>id=quote>

Obrigado pela resposta carissimo, já tinha visto este link, baixei, e sinceramente não entendi lhufas deste tipo de programação.

Você conseguiria traduzir para fivewin??

Obg, abs.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe

Editado por - kapiaba on 04/07/2012 11:58:43

Link to comment
Share on other sites

Kapi, infelizmente estou engatinhando com Fivewin, mas basicamente pelo q andei olhando nos fontes, mais em especifico o WebGets.prg, o Pablo usa na função BuscaWeb Activex, carregando o conteudo da página q citei acima e depois na função Captura() e ObterdaWeb() ele debulha com SUBSTR() a página em busca do horário.

Sinto não poder mais por enquanto...

[]´s

Link to comment
Share on other sites

citação:

Kapi, infelizmente estou engatinhando com Fivewin, mas basicamente pelo q andei olhando nos fontes, mais em especifico o WebGets.prg, o Pablo usa na função BuscaWeb Activex, carregando o conteudo da página q citei acima e depois na função Captura() e ObterdaWeb() ele debulha com SUBSTR() a página em busca do horário.

Sinto não poder mais por enquanto...

[]´s


id=quote>id=quote>

Tranquilo carissimo, já resolvi o problema aqui e não preciso mais que o usuário troque a hora do windows.

Muitissimo obrigado.

Precisando, TAMO JUNTO!!!

abs,

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

citação:

citação:

Kapi, infelizmente estou engatinhando com Fivewin, mas basicamente pelo q andei olhando nos fontes, mais em especifico o WebGets.prg, o Pablo usa na função BuscaWeb Activex, carregando o conteudo da página q citei acima e depois na função Captura() e ObterdaWeb() ele debulha com SUBSTR() a página em busca do horário.

Sinto não poder mais por enquanto...

[]´s


id=quote>id=quote>

Tranquilo carissimo, já resolvi o problema aqui e não preciso mais que o usuário troque a hora do windows.

Muitissimo obrigado.

Precisando, TAMO JUNTO!!!

abs,

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe


id=quote>id=quote>

Então João, foi ao Pacaembu ontém? kkkk, saudações corinthianas, mostra como vc resolveu. vlw.

Beto

FWH 9.08+xHarbour 1.2.1+Mymake+@Say

Link to comment
Share on other sites

citação:

citação:

citação:

Kapi, infelizmente estou engatinhando com Fivewin, mas basicamente pelo q andei olhando nos fontes, mais em especifico o WebGets.prg, o Pablo usa na função BuscaWeb Activex, carregando o conteudo da página q citei acima e depois na função Captura() e ObterdaWeb() ele debulha com SUBSTR() a página em busca do horário.

Sinto não poder mais por enquanto...

[]´s


id=quote>id=quote>

Tranquilo carissimo, já resolvi o problema aqui e não preciso mais que o usuário troque a hora do windows.

Muitissimo obrigado.

Precisando, TAMO JUNTO!!!

abs,

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe


id=quote>id=quote>

Então João, foi ao Pacaembu ontém? kkkk, saudações corinthianas, mostra como vc resolveu. vlw.

Beto

FWH 9.08+xHarbour 1.2.1+Mymake+@Say


id=quote>id=quote>

Saudações corinthianas Beto,

http://www.fivewin.com.br/forum/topic.asp?TOPIC_ID=20157

Abs.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

Kapiaba no win7 eh complicado alterar data e hora pois precisa de privilégio de administrador

entao melhor abrir a tela da data e hora caso nao consiga alterar.


Function ExtraiDataHora()

Local oWeb, cWeb, cProcura, cExtrai, cHora, cData

IF IsInternet()

oWeb := WebConnect():New()

cWeb := oWeb:Open( "http://www.horacerta.com.br/index.php?city=sao_paulo" )

cProcura='

MsgAlert(cData)

MsgAlert(cHora)

If ctod(Left(alltrim(cExtrai),10)) # date()

If Val(Left(alltrim(cExtrai),10)) # 0 // essa linha caso site esteja fora do ar

If MsgYesNo("A data do computador parece desatualizado."+CRLF+CRLF+"Data Internet"+CRLF+cData+CRLF+CRLF+"Data Local (seu computador)"+CRLF+Dtoc(Date())+CRLF+CRLF+"Deseja ajustar data/hora?", "Informativo!")

MsgRun( "Ajustando data e hora...", "Espere um momento", { || ajustadatahora(cData, cHora) } )

Endif

Endif

Endif

Endif

Return nil

*-----------------------------------------------------------------------------------------------------------------------------------

Function AjustaDataHora(cData, cHora)

Local cdataformat := Left(alltrim(cData),2)+"-"+Subs(alltrim(cData),4,2)+"-"+right(alltrim(cData),4)

MYRUN( "date "+cData )

MYRUN( "time "+cHora )

If ctod(cData) # date()

MYRUN("timedate.cpl") //abre tela data e hora windows

Endif

// MYRUN( 'runas /noprofile /user:UsuarioAdmin@Computador+" time "'+cHora )

// MYRUN( 'runas /user:UsuarioAdmin "control time "+cHora'

Return nil

id=code>id=code>

msginfofwh2.jpg

Link to comment
Share on other sites

citação:

Kapiaba no win7 eh complicado alterar data e hora pois precisa de privilégio de administrador

entao melhor abrir a tela da data e hora caso nao consiga alterar.


Function ExtraiDataHora()

Local oWeb, cWeb, cProcura, cExtrai, cHora, cData

IF IsInternet()

oWeb := WebConnect():New()

cWeb := oWeb:Open( "http://www.horacerta.com.br/index.php?city=sao_paulo" )

cProcura='

MsgAlert(cData)

MsgAlert(cHora)

If ctod(Left(alltrim(cExtrai),10)) # date()

If Val(Left(alltrim(cExtrai),10)) # 0 // essa linha caso site esteja fora do ar

If MsgYesNo("A data do computador parece desatualizado."+CRLF+CRLF+"Data Internet"+CRLF+cData+CRLF+CRLF+"Data Local (seu computador)"+CRLF+Dtoc(Date())+CRLF+CRLF+"Deseja ajustar data/hora?", "Informativo!")

MsgRun( "Ajustando data e hora...", "Espere um momento", { || ajustadatahora(cData, cHora) } )

Endif

Endif

Endif

Endif

Return nil

*-----------------------------------------------------------------------------------------------------------------------------------

Function AjustaDataHora(cData, cHora)

Local cdataformat := Left(alltrim(cData),2)+"-"+Subs(alltrim(cData),4,2)+"-"+right(alltrim(cData),4)

MYRUN( "date "+cData )

MYRUN( "time "+cHora )

If ctod(cData) # date()

MYRUN("timedate.cpl") //abre tela data e hora windows

Endif

// MYRUN( 'runas /noprofile /user:UsuarioAdmin@Computador+" time "'+cHora )

// MYRUN( 'runas /user:UsuarioAdmin "control time "+cHora'

Return nil

id=code>id=code>

msginfofwh2.jpg


id=quote>id=quote>

Valeu garoto, obrigado.

Saudações corinthianas.

João Santos - São Paulo.

joao@pleno.com.br

Fone: (11) 3106-2832 / 5150-7341 - TIM

https://www.facebook.com/kapiaba

FWH 2.7 - xHARBOUR WorkShop.Exe

Link to comment
Share on other sites

  • 5 years later...

Não mão...

STATIC oWnd, lNaoMostraMens := .T., oDlgBra, oTimer
//
FUNCTION MOSTRA_HORA_BRASIL()
	   LOCAL oFnt, oFont, oSaida, oBrush, oGroup, IDCor
   LOCAL aGet := ARRAY(5), nKey := VK_RETURN, cHoraBra := "        "
   LOCAL aHrDt, dDataBra, cConectando := SPACE(30)
   aHrDt := HrDtInternet()
	   IF .NOT. ISINTERNET()
      dDataBra := "SEM NET"
   ELSE
      dDataBra := CTOD( aHrDt[1] )
   ENDIF
	   DEFINE FONT oFnt  NAME "Ms Sans Serif" SIZE 00,  14 BOLD
   DEFINE FONT oFont NAME "Ms Sans Serif" SIZE 00, -14 BOLD
	   DEFINE DIALOG oDlgBra  RESOURCE "DLG_MOSTRA_HORA_BRASILIA" ;
          COLORS CLR_BLACK, CLR_WHITE TRANSPARENT
	   oDlgBra:lHelpIcon := .F.
	   For IDCor = 401 To 408 // Os ID's dos TEXTOS na DIALOG.
      REDEFINE SAY ID IDCor OF oDlgBra ;
               COLOR CLR_BLACK UPDATE FONT oFnt TRANSPARENT
   Next IDCor
	   For IDCor = 410 To 410 // Os ID's dos TEXTOS na DIALOG.
      REDEFINE SAY ID IDCor OF oDlgBra ;
               COLOR CLR_BLACK UPDATE FONT oFnt TRANSPARENT
   Next IDCor
	   REDEFINE GROUP oGroup ID 501 OF oDlgBra FONT oFnt TRANSPARENT COLOR CLR_HRED
	   REDEFINE GET aGet[1] VAR cHoraBra  ID 20 PICTURE "@K" OF oDlgBra   ;
            UPDATE WHEN( .F. ) FONT oFont COLORS CLR_BLACK, CLR_WHITE
	   aGet[1]:cToolTip := OemToAnsi( "Hora de Brasilia em Tempo Real." )
	   REDEFINE GET aGet[2] VAR dDataBra  ID 21 PICTURE "@K" OF oDlgBra   ;
            UPDATE WHEN( .F. ) FONT oFont COLORS CLR_BLACK, CLR_WHITE
	   aGet[2]:cToolTip := OemToAnsi( "Data de Brasilial em Tempo Real." )
	   REDEFINE GET aGet[3] VAR cConectando  ID 22 PICTURE "@K" OF oDlgBra ;
            UPDATE WHEN( .F. ) FONT oFont COLORS CLR_BLACK, CLR_WHITE
	   REDEFINE BUTTONBMP oSaida ID 301 OF oDlgBra                               ;
            ACTION( nKey := VK_ESCAPE, oDlgBra:End() ) CANCEL
	   oSaida:cToolTip := OemToAnsi( "Saida - Exit - Cancelar" )
	   SET FONT OF oSaida      TO oFont
	   ACTIVATE DIALOG oDlgBra CENTERED ;
            ON INIT( PEGA_TIMER_BRASIL( aGet, oWnd ) )
   
   oFont:End()
   oFnt:End()
	   DO CASE
   CASE NKEY == VK_ESCAPE .OR. GETKEYSTATE( VK_ESCAPE )
	      oTimer:End()
	   ENDCASE
	   lNaoMostraMens := .T.
	RETURN NIL
//-> ACIONA O TIMER DO RELOGIO DE BRASILIA NO DIALOGO
FUNCTION PEGA_TIMER_BRASIL( aGet, oWnd )
	   LOCAL cConecta
	   cConecta := OemToAnsi( "CONECTANDO AO HORµRIO DE BRASILIA" )
	   aGet[3]:VARPUT( cConecta )
   aGet[3]:Refresh()
	   IF lNaoMostraMens //:= .T.
	      MsgWait( "CONECTANDO AO HORARIO DE BRASILIA... ", ;
               "AGUARDE UM MOMENTO POR FAVOR...      ", 1.5 )
	   ENDIF
	   DEFINE TIMER oTimer INTERVAL 1000 OF oDlgBra                              ;
          ACTION HORABRASILIA( aGet, oWnd )
	   ACTIVATE TIMER oTimer
	RETURN NIL
//-> HORA EXATA DE BRASILIA
FUNCTION HORABRASILIA( aGet, oWnd )
	   LOCAL oHttp, cHtml
   LOCAL cHora
	   IF .NOT. IsInternet() // Se tiver internet ativa
	      MsgInfo( OemToAnsi( "ATEN€ÇO USUµRIO:                        " )+CRLF+ ;
               OemToAnsi( "VOCÒ ESTµ SEM INTERNET ATIVA, VERIFIQUE " )+CRLF+ ;
               OemToAnsi( "SUA CONEXÇO DE INTERNET, TOME CUIDADO..." )+CRLF+ ;
               OemToAnsi( "                                        " )+CRLF+ ;
               OemToAnsi( "SUA INTERNET NÇO ESTµ   OPERACIONAL.    " )+CRLF+ ;
               OemToAnsi( "TECLE <ENTER> PARA CONTINUAR...         " ),      ;
               OemToAnsi( "Falha na ConexÆo Com a Hora de Brasilia." ) )
	      cHora := [SEM NET]
	      aGet[1]:VARPUT( cHora )
      aGet[1]:Refresh()
	      lNaoMostraMens := .F.
	      RETURN NIL
	   ENDIF
	   IF IsInternet() // Se tiver internet ativa
	      oHttp := CreateObject( "winhttp.winhttprequest.5.1" )
      oHttp:Open( "GET", "http://24timezones.com/pt_horamundial/brasilia_hora_local.php" , .F. )
      oHttp:Send()
      cHtml:= oHttp:ResponseText()
      cHtml:= left(alltrim(StrExtract(cHtml, '<span id="currentTime">', '</span>' )),8)
	      cHora := TRANSF( cHtml, "99:99:99" )
	      aGet[1]:VARPUT( cHora )
      aGet[1]:Refresh()
	   ENDIF
	   lNaoMostraMens := .F.
	RETURN NIL
	FUNCTION StrExtract(cText,cAfter,cBefore)
	   LOCAL cRet := SUBSTR(cText,AT(cAfter,cText) + LEN(cAfter))
   LOCAL n
	   IF (n := AT(cBefore,cRet)) > 0
      cRet := LEFT(cRet,n - 1)
   ENDIF
	RETURN(cRet)
	// RC FILE
/*
DLG_MOSTRA_HORA_BRASILIA DIALOG 209, 99, 250, 200
STYLE DS_ABSALIGN | DS_MODALFRAME | 0x4L | WS_POPUP | WS_VISIBLE | WS_CAPTION | WS_SYSMENU
CAPTION "Hora de Brasilia On Line - Real."
FONT 8, "MS Sans Serif"
LANGUAGE LANG_NEUTRAL, SUBLANG_NEUTRAL
{
 EDITTEXT 20, 90, 38, 70, 12, ES_CENTER | NOT WS_TABSTOP | WS_BORDER
 EDITTEXT 21, 90, 69, 70, 12, ES_CENTER | NOT WS_TABSTOP | WS_BORDER
 PUSHBUTTON "&Saida", 301, 100, 181, 50, 14
 CTEXT "Hora de Brasilia", 401, 90, 23, 70, 12
 CTEXT "Data de Brasilia", 402, 90, 54, 70, 12
 CTEXT "VERIFIQUE A HORA DO SEU COMPUTADOR.", 403, 10, 86, 230, 12
 CTEXT "VERIFIQUE A DATA DO SEU COMPUTADOR.", 404, 10, 98, 230, 12
 CTEXT "SE TIVER ERRADO, SINCRONIZE O RELÓGIO.", 405, 10, 110, 230, 12
 CTEXT "HORA E DATA DEVEM SER IGUAL A DA SEFAZ.", 406, 10, 121, 230, 12
 GROUPBOX "Hora de Brasilia On Line - Verifique a Hora do Seu Windows", 501, 5, 4, 240, 175, BS_GROUPBOX
 CTEXT "VEJA HORA E DATA NO RODAPÉ DO WINDOWS.", 407, 10, 132, 230, 12
 CTEXT "SE ESTÁ IGUAL À HORA E DATA DE BRASILIA.", 408, 10, 144, 230, 12, SS_CENTER | NOT WS_GROUP
 CTEXT "<ESC> Sair", 410, 5, 181, 50, 12
 EDITTEXT 22, 10, 157, 230, 12, ES_CENTER | NOT WS_TABSTOP | NOT WS_BORDER
}
*/

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

Loading...
×
×
  • Create New...