MAMP2 Posted March 5, 2021 Report Share Posted March 5, 2021 bom dia pessoal, tem como um comando pelo fivewin sincronizar a hora do computador com a internet? obrigado Quote Link to comment Share on other sites More sharing options...
Wellington Vieira Posted March 5, 2021 Report Share Posted March 5, 2021 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 ) ) Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 5, 2021 Report Share Posted March 5, 2021 WinExec( "CONTROL TIMEDATE.CPL" ) Abs Quote Link to comment Share on other sites More sharing options...
rochinha Posted March 12, 2021 Report Share Posted March 12, 2021 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. Quote Link to comment Share on other sites More sharing options...
MAMP2 Posted March 12, 2021 Author Report Share Posted March 12, 2021 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? Quote Link to comment Share on other sites More sharing options...
kapiaba Posted March 12, 2021 Report Share Posted March 12, 2021 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! Quote Link to comment Share on other sites More sharing options...
giovanyvecchi Posted March 14, 2021 Report Share Posted March 14, 2021 Da uma olhada aqui: https://docs.microsoft.com/pt-br/windows-server/networking/windows-time-service/windows-time-service-tools-and-settings Quote Link to comment Share on other sites More sharing options...
rochinha Posted March 14, 2021 Report Share Posted March 14, 2021 Amiguinhos, Tente essa sequencia: net stop w32time w32tm /config /manualpeerlist:a.ntp.br,b.ntp.br,c.ntp.br,0x8, /syncfromflags:manual net start w32time Quote Link to comment Share on other sites More sharing options...
HERGON Posted March 15, 2021 Report Share Posted March 15, 2021 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 rochinha 1 Quote Link to comment Share on other sites More sharing options...
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.