carlos vargas wrote:Yo lo buscaría hacer con el componente twebview y con el URL de speedtest. Y lo íntegro en mi app.
#include 'hbcurl.ch'
#define CURLOPT_URL 10002
#define CURLOPT_NOBODY 10013
PROCEDURE Main()
LOCAL curl, res, url, startTime, endTime
LOCAL speed
url := "https://github.com/FiveTechSoft/harbour_and_xharbour_builds/raw/master/harbour_msvc2022_64_20240530.zip"
startTime := Seconds()
curl := curl_easy_init()
IF curl!= Nil
curl_easy_setopt(curl, CURLOPT_URL, url)
// curl_easy_setopt(curl, CURLOPT_NOBODY, 1) // solo obtener headers
res := curl_easy_perform(curl)
endTime := Seconds()
IF res == 0
speed := (endTime - startTime) / 60 // segundos a minutos
? "Velocidad de descarga:", speed * 1024, " KB/s"
ELSE
? "curl_easy_perform() failed:", res, curl_easy_strerror(res)
ENDIF
curl_easy_cleanup(curl)
ENDIF
curl_global_cleanup()
RETURN
Garbi wrote:Hola,
No he podido investigar mucho, pero para otras cosas como descargar ficheros, yo lo hago por comandos.
Te pongo una URL donde te explica como hacerlo, supongo que si buscas un poco en la ayuda podrás saber como obtener el dato de la velocidad.
https://www.youtube.com/watch?v=NU15yYT2pwk
Ya nos dices si te ha servido.
Antonio Linares wrote:Este código debería funcionar pero algo le falla aún:
- Code: Select all Expand view RUN
#include 'hbcurl.ch'
#define CURLOPT_URL 10002
#define CURLOPT_NOBODY 10013
PROCEDURE Main()
LOCAL curl, res, url, startTime, endTime
LOCAL speed
url := "https://github.com/FiveTechSoft/harbour_and_xharbour_builds/raw/master/harbour_msvc2022_64_20240530.zip"
startTime := Seconds()
curl := curl_easy_init()
IF curl!= Nil
curl_easy_setopt(curl, CURLOPT_URL, url)
// curl_easy_setopt(curl, CURLOPT_NOBODY, 1) // solo obtener headers
res := curl_easy_perform(curl)
endTime := Seconds()
IF res == 0
speed := (endTime - startTime) / 60 // segundos a minutos
? "Velocidad de descarga:", speed * 1024, " KB/s"
ELSE
? "curl_easy_perform() failed:", res, curl_easy_strerror(res)
ENDIF
curl_easy_cleanup(curl)
ENDIF
curl_global_cleanup()
RETURN
// C:\FWH\SAMPLES\INTSPEED.PRG
#include "FiveWin.ch"
FUNCTION Main()
LOCAL cURL := "https://fiber.google.com/speedtest/"
/* comprobamos si tenemos conexion a internet */
IF .NOT. IsInternet()
// MsgAlert( "Verifique Sua Internet.", "Internet Fora do Ar?" )
MsgAlert( "Revise su Internet.", "¿Internet caído?")
RETURN NIL
ENDIF
CursorWait()
// Funcion modificada para que funcione con Windows 7
ShellExecute( , "open", cURL )
CursorArrow()
RETURN NIL
// FIN / END
Antonio Linares wrote:Este código debería funcionar pero algo le falla aún:
- Code: Select all Expand view RUN
#include 'hbcurl.ch'
#define CURLOPT_URL 10002
#define CURLOPT_NOBODY 10013
PROCEDURE Main()
LOCAL curl, res, url, startTime, endTime
LOCAL speed
url := "https://github.com/FiveTechSoft/harbour_and_xharbour_builds/raw/master/harbour_msvc2022_64_20240530.zip"
startTime := Seconds()
curl := curl_easy_init()
IF curl!= Nil
curl_easy_setopt(curl, CURLOPT_URL, url)
// curl_easy_setopt(curl, CURLOPT_NOBODY, 1) // solo obtener headers
res := curl_easy_perform(curl)
endTime := Seconds()
IF res == 0
speed := (endTime - startTime) / 60 // segundos a minutos
? "Velocidad de descarga:", speed * 1024, " KB/s"
ELSE
? "curl_easy_perform() failed:", res, curl_easy_strerror(res)
ENDIF
curl_easy_cleanup(curl)
ENDIF
curl_global_cleanup()
RETURN
vcpkg install curl
#include 'hbcurl.ch'
#define CURLOPT_NOBODY 10013
function speed()
local hCurl, nRet, uValue, hRows
local lError := .f.
local cUrl := "https://github.com/FiveTechSoft/harbour_and_xharbour_builds/raw/master/harbour_msvc2022_64_20240530.zip"
if ! empty( hCurl := curl_easy_init() )
curl_easy_setopt( hCurl, HB_CURLOPT_DOWNLOAD )
curl_easy_setopt( hCurl, HB_CURLOPT_URL, cUrl )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYPEER, .f. )
curl_easy_setopt( hCurl, HB_CURLOPT_SSL_VERIFYHOST, .f. )
curl_easy_setopt( hCurl, HB_CURLOPT_FOLLOWLOCATION ) // Necesario para aquellos sitios que nos redirigen a otros
curl_easy_setopt( hCurl, HB_CURLOPT_FILETIME, 1)
//curl_easy_setopt(hCurl, CURLOPT_NOBODY, 1) // solo obtener headers
curl_easy_setopt( hCurl, HB_CURLOPT_DL_FILE_SETUP, 'c:\temp\z.zip' )
curl_easy_setopt( hCurl, HB_CURLOPT_NOPROGRESS, .t. )
curl_easy_setopt( hCurl, HB_CURLOPT_VERBOSE, .f. )
curl_easy_setopt( hCurl, HB_CURLOPT_FAILONERROR , .t. ) // Change cUrl Dummy
nRet := curl_easy_perform( hCurl )
if nRet == HB_CURLE_OK // HB_CURLE_OK == 0
? 'Size Download: ' + ltrim(str(curl_easy_getinfo( hCurl, HB_CURLINFO_SIZE_DOWNLOAD )))
? 'Time: ' + ltrim(str(curl_easy_getinfo( hCurl, HB_CURLINFO_TOTAL_TIME ))) + ' sec.' // receive the total time in seconds for the previous transfer, including name resolving, TCP connect etc.
? 'Bytes/sec: ' + ltrim(str(curl_easy_getinfo( hCurl, HB_CURLINFO_SPEED_DOWNLOAD ))) // bytes/sec
? 'Mb. Sec: ' + ltrim(str(curl_easy_getinfo( hCurl, HB_CURLINFO_SPEED_DOWNLOAD ) / 1024 /1024))
else
lError := .t.
? 'Error: ' + curl_easy_strerror( nRet )
endif
curl_easy_cleanup(hCurl)
endif
retu ! lError
Return to FiveWin para Harbour/xHarbour
Users browsing this forum: No registered users and 38 guests