******************************************** * Compilar: hbmk2 demo.prg -lhbwin ******************************************** #include "hbcompat.ch" Function Main() Private CRLF := CHR(13) + CHR(10) SetMode(25,80) Alert( STRTRAN(PegaDtHrBrasilia(), '*',';' ) ) RETURN NIL Function PegaDtHrBrasilia() // baseado em exemplo Minigui disponibilizado na Seção de Downloads pelo Pablo César Local cRet := "", cPagina := "" local cTexto := "Local time in Brasilia" IF (oOle := Cria_OLE( "InternetExplorer.Application", , .T.)) == NIL RETURN .F. ENDIF oOle:Visible := .F. // Apresenta o Browser oOle:ToolBar := .F. // Desativa a barra de ferramentas oOle:StatusBar := .F. // Desativa a barra de status oOle:MenuBar := .F. // desativa a barra de menu oOle:Navigate("http://www.timeanddate.com/worldclock/fullscreen.html?n=45") WHILE oOle:ReadyState() != 4 // Aguarda página ser carregada, mesmo q não seja visualizado no Navegador (opão Visible := F ou T) INKEY(.5) END INKEY(.2) *** Retrieve the entire HTML document as a string cPagina := oOle:Document():Body:InnerText oOle := NIL If cTexto $ cPagina cPagina := Substr(cPagina,At(cTexto,cPagina)+25) cPagina := Substr(cPagina,At(",",cPagina)+1) cPagina := Alltrim(Substr(cPagina,1,At(CRLF,cPagina)+11)) cDia := Strzero(Val(Substr(cPagina,1,At(" ",cPagina))),2,0) cPagina := Substr(cPagina,At("de ",cPagina)+3) cMes := VqMes(lower(Alltrim(Substr(cPagina,1,At(" ",cPagina))))) cPagina := Substr(cPagina,At("de ",cPagina)+3) cAno := Substr(cPagina,1,At(CRLF,cPagina)-1) cPagina := Substr(cPagina,At(CRLF,cPagina)+2) cData := cDia+"/"+cMes+"/"+cAno cHora := Substr(cPagina,1,8) cRet := cData+'*'+cHora Else cRet := "Erro" Endif Return cRet ******************************************************************************** Function VqMes(cText) Local cNMes Do Case Case cText=="janeiro" cNMes := "01" Case cText=="fevereiro" cNMes := "02" Case cText=="março" cNMes := "03" Case cText=="abril" cNMes := "04" Case cText=="maio" cNMes := "05" Case cText=="junho" cNMes := "06" Case cText=="julho" cNMes := "07" Case cText=="agosto" cNMes := "08" Case cText=="setembro" cNMes := "09" Case cText=="outubro" cNMes := "10" Case cText=="novembro" cNMes := "11" Case cText=="dezembro" cNMes := "12" EndCase Return cNMes //------------------------------------------------------------------------------ FUNCTION Cria_OLE(cObj_OLE, cMsg, lGetActiveObj) /* Cria objeto Ole */ LOCAL oObj_OLE := NIL cMsg:='Erro ao tentar carregar objeto;;Tente novamente' lGetActiveObj:=.F. IF lGetActiveObj TRY oObj_OLE := GetActiveObject( cObj_OLE ) CATCH TRY oObj_OLE := CREATEOBJECT(cObj_OLE) CATCH Alert(cMsg) RETURN oObj_OLE END END ELSE TRY oObj_OLE := CREATEOBJECT(cObj_OLE) CATCH Alert(cMsg) RETURN oObj_OLE END ENDIF RETURN oObj_OLE