Jump to content
Fivewin Brasil

acertar a data do computador pela internt.


MAMP2

Recommended Posts

function data_brasilia()
         LOCAL xdia_atu , xhora_atu
		 
		 ldate = date()
		 
		 //return .t.
		 
		 nresp = fWait(".....Processando Data.....")
		 
	     if IsInternet() == .f.
		    odlgwait:end()
            return .t.
         endif
		 
         try
           oHttp := CreateObject( "winhttp.winhttprequest.5.1" )
           oHttp:Open( "GET", "http://24timezones.com/pt_horamundial/brasilia_hora_local.php" , .F. )
           oHttp:Send()
           cHtml := oHttp:ResponseText()
         catch
		   odlgwait:end()
           return .t.
         end
         
		 cHora := alltrim( StrExtract( cHtml, '<span id="currentTime">', '</span>' ) )
         cHora1 := TRANSF( cHora, "99:99:99" )
            
         x_am_pm  := alltrim( substr( cHora , 10 , 2 ) )
         ntamtot  := len( cHora )
         nposmesi := rat( ',' , cHora ) + 1
         nposmesf := ( ntamtot - nposmesi ) - 4
         nposanoi := ntamtot - 3
            
         nposdiaf := rat( ',' , cHora ) - 1
         nposdiai := nposdiaf - 1
         nposdiaf := nposdiaf - nposdiai
            
         dia := alltrim( substr( cHora , nposdiai , 2        ) )
         mes := alltrim( substr( cHora , nposmesi , nposmesf ) )
         ano := alltrim( substr( cHora , nposanoi , 4        ) )
		 
         IF x_am_pm = 'PM' .AND. ( val( substr( cHora1 , 1 , 2 ) ) < 12 )
            xhora1 := zeracod( str( val(substr( cHora1 , 1 , 2 ) ) + 12 ,2 ) )
            cHora1 := xhora1 + substr( cHora1 , 3 )
         ENDIF
      
		 // verfica se o site trouxe o dia correto.
		 if dia = "01" .or. dia = "02" .or. dia = "03" .or. dia = "04" .or.;
		    dia = "05" .or. dia = "06" .or. dia = "07" .or. dia = "08" .or.;
		    dia = "09" .or. dia = "10" .or. dia = "11" .or. dia = "12" .or.;
		    dia = "13" .or. dia = "14" .or. dia = "15" .or. dia = "16" .or.;
		    dia = "17" .or. dia = "18" .or. dia = "19" .or. dia = "20" .or.;
		    dia = "21" .or. dia = "22" .or. dia = "23" .or. dia = "24" .or.;
		    dia = "25" .or. dia = "26" .or. dia = "27" .or. dia = "28" .or.;
		    dia = "29" .or. dia = "30" .or. dia = "31"
		 else	
		    odlgwait:end()
		    return .t.
		 endif
		 
		 // verifica se o site trouxe o mês correto.
		 nqmesnum =  qmesnum( mes )
		 if nqmesnum = "01" .or. nqmesnum = "02" .or. nqmesnum = "03" .or.;
		    nqmesnum = "04" .or. nqmesnum = "05" .or. nqmesnum = "06" .or.;
			nqmesnum = "07" .or. nqmesnum = "08" .or. nqmesnum = "09" .or.;
			nqmesnum = "10" .or. nqmesnum = "11" .or. nqmesnum = "12"
		 else   
			odlgwait:end()
		    return .t.
		 endif
			
		 // verifica se o site trouxe o ano correto.
		 if substr(dtos(ldate),1,4) = substr(ano,1,4)
		 else
		   odlgwait:end()	
		   return .t.
		 endif
		 
		 data_atual_site := dia + '.' + qmesnum( mes ) + '.' + substr(ano,3,2)
		 
		 xdia_atu  := date()
         xhora_atu := time()
		 
         if data_atual_site # dtoc( xdia_atu )
	        //xdate := "Date " + data_atual_site
            //try
            //   winexec( xdate )
            //catch
            //end
		    odlgwait:end()
	        msginfo( "Favor corrigir a data do seu Equipamento." + CRLF + CRLF + ;
                     "Data na Internet: " + data_atual_site + CRLF + ;
                     "Data do Equipamento: " + dtoc( xdia_atu ) , "WSISCOM SOFTWARE." )
            return .f.
         endif
		 
         // Aqui verifica a HORA..........................
		 
		 //if substr( cHora1 , 1 , 4 ) # substr( xhora_atu , 1 , 4 )
	     //   //try
         //   //   winexec( cHora1 )
         //   //catch
         //   //end
		 //   odlgwait:end()
	     //   msginfo( "Favor corrigir a hora do seu Equipamento." + CRLF + CRLF + ;
         //            "Hora na Internet: " + cHora1 + CRLF + ;
         //            "Hora do Equipamento: " + xhora_atu , "WSISCOM SOFTWARE." )
         //   return .f.
         //endif
	     
		 odlgwait:end()
return .t.
// -------------------------------------------------------------------------- //
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 )
// -------------------------------------------------------------------------- //
FUNCTION ZeraCod( Cod )
RETURN Padl( AllTrim( Cod ), Len( cod ), [0] )
//----------------------------------------------------------------------------//
FUNCTION qmesnum( pmes )
         LOCAL nmesnum
         IF len( alltrim( pmes ) ) < 1
            pmes := 'Janeiro'
         ENDIF
         PRIVATE Tmes := { "JANEIRO", "FEVEREIRO", "MARÇO", "ABRIL", "MAIO", "JUNHO", "JULHO", "AGOSTO", "SETEMBRO", "OUTUBRO", "NOVEMBRO", "DEZEMBRO" }
         nmesnum := ascan( tmes, Alltrim( upper(pmes ) ) )
RETURN zeracod( str( nmesnum,2 ) )

 

Link to comment
Share on other sites

Amiguinhos,

Para sincronizar o computador com hora na internet basta acionar o comando:

NET TIME \\computerName /SET /YES

Para saber qual é o nome do computador basta dat o comando SET em uma tela do DOS.

Procure na listagem apresentada pela variavel COMPUTERNAME, exemplo:

...

COMPUTERNAME=ROCHINHA-PC

...

Então comande:

NET TIME \\ROCHINHA-PC /SET /YES

O comando pode funcionar somente enquanto o equipamento estiver ligado. Se ele não for ativado ao iniciar o comando deve ser dado sempre ao religar o mesmo. Mas creio que se o serviço estiver ativado, bastará um comando para colocar ele sincronizado.

É importante verificar se o serviço Windows Time está ativado e no automático. Comande services.msc navegue até Windows Time e veja se está para iniciar automaticamente.

A sincronia vai se manter perfeita se a bateria do equipamento fornecer energia ao clock da placa mãe, portanto é melhor trocá-la. Custa uns 2 contos e vende até em farmácia.

Todos os comandos devem ser dados em um Prompt Administrador.

Link to comment
Share on other sites

rochinha, o comando que voce esta falando sincroniza o horario do computador que voce esta usando com o horario de um outro computador(que tambem pode estar errado)

o comando que eu quero é pra acertar a hora do computador com a hora da internet (ou seja) acertar a hora do comutador.

Kapiaba o comando "control timedate.cpl", chama a tela pra acertar a hora, eu preciso acertar a hora sem colocar esta tela no ar e pedir pra o ussuario

acertar, este seu comando seria 10 se pudesse passar alguns parametros e o usuario nao tivesse que interagir com o computador, tem jeito?

 

Link to comment
Share on other sites

50 minutos atrás, MAMP2 disse:

rochinha, o comando que voce esta falando sincroniza o horario do computador que voce esta usando com o horario de um outro computador(que tambem pode estar errado)

o comando que eu quero é pra acertar a hora do computador com a hora da internet (ou seja) acertar a hora do comutador.

Kapiaba o comando "control timedate.cpl", chama a tela pra acertar a hora, eu preciso acertar a hora sem colocar esta tela no ar e pedir pra o ussuario

acertar, este seu comando seria 10 se pudesse passar alguns parametros e o usuario nao tivesse que interagir com o computador, tem jeito?

 

NÃO!

Link to comment
Share on other sites

Bom dia

Eu faço assim, talvez ajude:

 

Function fAcertarDtHr(lMostraOk)
   Local oWeb, cWeb, cProcura, cExtrai, cHora, cData, lAjusta:=.f.
    Default lMostraOk:=.t.
   If !VerificaNet()
        If lMostraOk
         fMsgStop("Computador não está conectado na internet.", "Sem Acesso à Internet")
      Endif
      Return .f.
   Endif
   MsgAguarde("Verificando data/hora pela internet.", "Aguarde...")
   SysRefresh()
   CursorWait()
   oWeb    := WebConnect():New()
   cWeb    := oWeb:Open( "http://www.horacerta.com.br/index.php?city=sao_paulo" )
   cProcura:= '<input name="mostrador" type="text" size="25" value="'
   cExtrai := Subs(cWeb, At(cProcura,cWeb)+53,24)
   cData   := Alltrim(Left(alltrim(cExtrai),10))
   cHora   := Alltrim(StrZero(If(Right(cExtrai,2)=="PM" .and. Val(subs(cExtrai,14,2))<=11, 12, 0)+Val(subs(cExtrai,14,2)),2)+":"+subs(cExtrai,17,5))
   If Val(GetPvProfString("Diversos", "Ajuste da Hora", "", CurDrive()+":\"+CurDir()+"\"+cNomeTerm+".ini"))==0
      // Não alterar a hora
   Elseif Val(GetPvProfString("Diversos", "Ajuste da Hora", "", CurDrive()+":\"+CurDir()+"\"+cNomeTerm+".ini"))==1
      cHora := TsTring(Secs(cHora)-3600)
   Else
      cHora := TsTring(Secs(cHora)+3600)
   Endif

    MsgFechaAguarde()
   If Ctod(cData)<>Date() .and. Val(cData)<>0 .and. Subs(cHora,1,5)<>Subs(Time(),1,5) .and. Val(cHora)<>0
      If MsgYesNo("Data e hora da Internet:"+CRLF+;
                  cData+"  -  "+cHora+CRLF+CRLF+;
                  "Data e hora do computador:"+CRLF+;
                  Dtoc(Date())+"  -  "+Time()+CRLF+CRLF+;
                  "Deseja ajustar a data e hora?", "Data e hora do computador parecem desatualizadas.")
         lAjusta:=.t.
      Endif
   Elseif Ctod(cData)==Date() .and. Val(cData)<>0 .and. Subs(cHora,1,5)<>Subs(Time(),1,5) .and. Val(cHora)<>0
      If MsgYesNo("Hora da Internet:"+CRLF+;
                  cHora+CRLF+CRLF+;
                  "Hora do computador:"+CRLF+;
                  Time()+CRLF+CRLF+;
                  "Deseja ajustar a hora?", "A hora do computador está desatualizada")
         lAjusta:=.t.
      Endif
   Elseif Ctod(cData)<>Date() .and. Val(cData)<>0 .and. Subs(cHora,1,5)==Subs(Time(),1,5) .and. Val(cHora)<>0
      If MsgYesNo("Data da Internet:"+CRLF+;
                  cData+CRLF+CRLF+;
                  "Data do computador:"+CRLF+;
                  Dtoc(Date())+CRLF+CRLF+;
                  "Deseja ajustar a data?", "A data do computador está desatualizada")
         lAjusta:=.t.
      Endif
   Else
        If lMostraOk
         MsgInfo("A data/hora do seu computador conferem com as informações da internet."+CRLF+CRLF+;
                 "Data: "+cData+"  -  Hora: "+cHora, "Informações da Internet")
          Endif
   Endif
   If lAjusta
      MsgRun( "Ajustando data e hora.", "Aguarde...", { || fAjustaDataHora(cData, cHora) } )
      MsgInfo("Ajuste realizado com sucesso.", "Ajuste")
   Endif
Return Nil

Static Function fAjustaDataHora(cData, cHora)
   MyRun( "date "+cData )
   MyRun( "time "+cHora )
   If Ctod(cData) <> date()
      MyRun("timedate.cpl") //abre tela data e hora windows
   Endif
Return .t.
 

Tem algumas funções próprias, mas comente e teste.

Herberson Gontijo

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...