Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Proyecto SIF/Veri*Factu/Ley Antifraude > Envío de registros y sus respuestas
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 14-11-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.768
Poder: 5
ermendalenda Va por buen camino
Ojo con el TimeStamp de Respuesta

Por si a alguien le sirve:
Ya alguien comentó que el timestamp no lo devuelve si no ha aceptado al menos un registro del lote.
Pero, el nuevo tiempo sí o sea, hay que volver a esperar 60 segundos a partir de cuando?
Pues no está muy claro, pero me voy a anotar la fecha hora de mi sistema como si fuera el timestamp cuando no haya timestamp de vuelta.
Responder Con Cita
  #2  
Antiguo 14-11-2024
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por ermendalenda Ver Mensaje
Por si a alguien le sirve:
Ya alguien comentó que el timestamp no lo devuelve si no ha aceptado al menos un registro del lote.
Pero, el nuevo tiempo sí o sea, hay que volver a esperar 60 segundos a partir de cuando?
Pues no está muy claro, pero me voy a anotar la fecha hora de mi sistema como si fuera el timestamp cuando no haya timestamp de vuelta.
Yo, personalmente uso siempre el timestamp que yo uso, que ahora lo pillo no de mi sistema , sino del ROA, vosotros deveriais hacer lo mismo, y compararlo con el que devuelven, si esta, por si tenes mucho desfase, no quedaros fuera del tiempo por unos segundos, digo vosotros porque yo no hago, ni planeo hacer envios multiples encadenados, y si tengo problemas de conexion, guardo la factura como una proforma, con su numero de proforma y cuando tenga conexion, las facturo, que en eso no ponen de momento pegas.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #3  
Antiguo 05-12-2024
razorxxx razorxxx is offline
Miembro
 
Registrado: jul 2015
Posts: 108
Poder: 10
razorxxx Va por buen camino
Cita:
Empezado por bmfranky Ver Mensaje
Yo, personalmente uso siempre el timestamp que yo uso, que ahora lo pillo no de mi sistema , sino del ROA, vosotros deveriais hacer lo mismo, y compararlo con el que devuelven, si esta, por si tenes mucho desfase, no quedaros fuera del tiempo por unos segundos, digo vosotros porque yo no hago, ni planeo hacer envios multiples encadenados, y si tengo problemas de conexion, guardo la factura como una proforma, con su numero de proforma y cuando tenga conexion, las facturo, que en eso no ponen de momento pegas.
Hola bmfranky, ¿podrías publicar un ejemplo en Delphi de cómo obtener la hora del servidor ROA de la AEAT? Esto ya me dijeron que es importante, ya que en ocasiones a los ordenadores se les desconfigura la fecha-hora o algún listillo la cambia a mano.
Responder Con Cita
  #4  
Antiguo 05-12-2024
Avatar de bmfranky
bmfranky bmfranky is offline
Miembro
 
Registrado: may 2024
Ubicación: Gandia, Valencia
Posts: 599
Poder: 1
bmfranky Va por buen camino
Cita:
Empezado por razorxxx Ver Mensaje
Hola bmfranky, ¿podrías publicar un ejemplo en Delphi de cómo obtener la hora del servidor ROA de la AEAT? Esto ya me dijeron que es importante, ya que en ocasiones a los ordenadores se les desconfigura la fecha-hora o algún listillo la cambia a mano.
Hola, lo siento pero yo uso c#, so sabria realizar la conversion correctamente, le pongo mi codigo.
Código:
        /// <summary>
        /// Devuelve la hora actual formateada con uso horario.
        /// </summary>
        /// <returns>Hora actual formateada.</returns>
        public static string leeFechaHoraInternet()
        {
            string retorno = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK"); 
            System.Net.ServicePointManager.SecurityProtocol = SecurityProtocolType.Tls12;
            try
            {
                HttpWebRequest webRequest = (HttpWebRequest)WebRequest.Create("https://www2.roa.es/cgi-bin/horautc");//https://worldtimeapi.org/api/ip");
                webRequest.Method = "GET";
                HttpWebResponse respuesta = (HttpWebResponse) webRequest.GetResponse();
                if(respuesta.StatusCode == HttpStatusCode.OK)
                {
                    Stream strmRespuesta = respuesta.GetResponseStream();
                    StreamReader leeRespuesta = new StreamReader(strmRespuesta);
                    string jsonRespuesta = leeRespuesta.ReadToEnd();
                    long ticks = long.Parse(jsonRespuesta.Replace("\\n", ""));
                    var fechora = Org.BouncyCastle.Utilities.Date.DateTimeUtilities.UnixMsToDateTime(ticks).ToLocalTime();//esta la uso yo porque tengo bouncy instalado
                    //desde el paquete nuget BouncyCastle
                    retorno = fechora.ToString("yyyy-MM-dd'T'HH:mm:ssK");                               
                }
            }
            catch(Exception Exc)
            {
                retorno = DateTime.Now.ToString("yyyy-MM-dd'T'HH:mm:ssK");
            }
             return retorno;
        }

Puede preguntar a @novatico
Cita:
Empezado por novatico Ver Mensaje
Es que yo no tomo la fecha hora del sistema, sino que la tomo de internet.

Incluso he encontrado la forma de tomar el "unixtime" del ROA (Real Observatorio de la Armada) que es el dato oficial que tomas todos los organismos estatales, incluida la AEAT.
Solo hay que tener en cuenta, además, el desfase por la zona horaria.

Aunque de momento no lo he implementado y lo tomo de "http://date.jsontest.com" al que tambien hay que añadir el desfase de zona.

Es que tengo clientes "muy amigos" de cambiar la fecha y hora del sistema.
El decia tener un control creado para ello.
__________________
Uno se alegra de ser útil. (Isaac Asimov)
Responder Con Cita
  #5  
Antiguo 06-12-2024
mqm mqm is offline
Miembro
 
Registrado: nov 2006
Posts: 41
Poder: 0
mqm Va por buen camino
Aqua lo tenéis convertido a Delphi 10 y probado. Espero que os sirva


Código Delphi [-]
unit Unit2;

interface

uses
  System.SysUtils, System.DateUtils, IdHTTP, IdSSLOpenSSL, System.JSON;

function LeeFechaHoraInternet: string;

implementation

function LeeFechaHoraInternet: string;
var
  Http: TIdHTTP;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
  Respuesta: string;
  JsonRespuesta: TJSONObject;
  UnixTicks: Int64;
  FechaHora: TDateTime;
begin
  Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', Now); // Formato inicial por defecto
  Http := TIdHTTP.Create(nil);
  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  try
    Http.IOHandler := SSLHandler;
    Http.Request.Accept := 'application/json';
    Http.Request.UserAgent := 'Mozilla/5.0 (compatible; Delphi)';
    try
      // Realiza la solicitud a la API
      Respuesta := Http.Get('https://www2.roa.es/cgi-bin/horautc');

      // Si la respuesta es un número de ticks Unix, conviértelo
      UnixTicks := StrToInt64(Trim(Respuesta)); // Ajusta el formato si la API devuelve algo diferente
      FechaHora := UnixToDateTime(UnixTicks div 1000); // Divide entre 1000 para convertir milisegundos a segundos
      FechaHora := TTimeZone.Local.ToLocalTime(FechaHora);
      Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', FechaHora);
    except
      on E: Exception do
        // En caso de error, retorna la hora local
        Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', Now);
    end;
  finally
    Http.Free;
    SSLHandler.Free;
  end;
end;
end.


Librerías utilizadas:

IdHTTP y IdSSLOpenSSL para manejar la conexión HTTPS.
System.DateUtils para trabajar con fechas y convertir ticks Unix a TDateTime.
Formato de la fecha: Utiliza FormatDateTime para formatear las fechas en el formato ISO 8601 con zona horaria.

Manejo de errores: Si ocurre un error durante la solicitud HTTP, devuelve la hora local en el formato esperado.

Conversión de ticks Unix: La API devuelve ticks Unix en milisegundos. Esto se divide entre 1000 para convertirlos a segundos antes de usar UnixToDateTime.

Dependencia de OpenSSL: Asegúrate de que tu entorno tenga acceso a las DLL de OpenSSL (libeay32.dll y ssleay32.dll o sus equivalentes actuales) para que TIdSSLIOHandlerSocketOpenSSL funcione correctamente.

Última edición por Neftali [Germán.Estévez] fecha: 09-12-2024 a las 09:14:35. Razón: corregir TAGs del código
Responder Con Cita
  #6  
Antiguo 06-12-2024
mqm mqm is offline
Miembro
 
Registrado: nov 2006
Posts: 41
Poder: 0
mqm Va por buen camino
Y esto seria para delphi 7:
Código:
unit Unit2;

interface

uses
  Windows, SysUtils, IdHTTP, IdSSLOpenSSL, DateUtils;

function LeeFechaHoraInternet: string;

implementation


function GetTimeZoneOffset: TDateTime;
var
  TZInfo: TTimeZoneInformation;
  Bias: Integer;
begin
  case GetTimeZoneInformation(TZInfo) of
    TIME_ZONE_ID_STANDARD, TIME_ZONE_ID_DAYLIGHT:
      Bias := TZInfo.Bias + TZInfo.DaylightBias; // Ajuste según horario de verano
    else
      Bias := 0; // Si no se puede determinar la zona horaria, se asume UTC
  end;
  Result := Bias / MinsPerDay; // Convertir minutos a días
end;

function LeeFechaHoraInternet: string;
var
  Http: TIdHTTP;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
  Respuesta: string;
  UnixTicks: Int64;
  FechaHoraUTC, FechaHoraLocal: TDateTime;
  TimeZoneOffset: TDateTime;
begin
  Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', Now); // Valor predeterminado
  Http := TIdHTTP.Create(nil);
  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  SSLHandler.SSLOptions.Method := sslvTLSv1_2;
  try
    Http.IOHandler := SSLHandler;
    Http.Request.Accept := 'application/json';
    Http.Request.UserAgent := 'Mozilla/5.0 (compatible; Delphi)';
    try
      // Realizar la solicitud HTTP
//      Respuesta := Http.Get('https://www2.roa.es/cgi-bin/horautc');
      Respuesta := Http.Get('https://www.google.com');

      // Convertir la respuesta (ticks Unix) a DateTime
      UnixTicks := StrToInt64(Trim(Respuesta));
      FechaHoraUTC := UnixDateDelta + (UnixTicks div SecsPerDay) + (UnixTicks mod SecsPerDay) / SecsPerDay;

      // Obtener el desfase horario
      TimeZoneOffset := GetTimeZoneOffset;
      FechaHoraLocal := FechaHoraUTC - TimeZoneOffset;

      // Devolver la fecha y hora en formato ISO 8601
      Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', FechaHoraLocal);
    except
      on E: Exception do
        // En caso de error, devolver la hora actual
       // result := E.Message;
        Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', Now);
    end;
  finally
    Http.Free;
    SSLHandler.Free;
  end;
end;
end.
Responder Con Cita
  #7  
Antiguo 07-12-2024
Sandy656 Sandy656 is offline
Miembro
 
Registrado: jul 2006
Posts: 21
Poder: 0
Sandy656 Va por buen camino
Hola.

He intentado usar la función pero me sale este error. ¿Sabéis como poder solucionarlo?

Error connecting with SSL. error 1409442E:SSL routines:SSL3_READ_BYTES: tlsv 1 alert protocol version

Gracias!!!!
Responder Con Cita
  #8  
Antiguo 07-12-2024
mqm mqm is offline
Miembro
 
Registrado: nov 2006
Posts: 41
Poder: 0
mqm Va por buen camino
prueba con este: A mi me funciona correctamente en delphi 7
Código:
unit Unit2;

interface

uses
  Windows, SysUtils, IdHTTP, IdSSLOpenSSL, DateUtils;

function LeeFechaHoraInternet: string;

implementation


function GetTimeZoneOffset: TDateTime;
var
  TZInfo: TTimeZoneInformation;
  Bias: Integer;
begin
  case GetTimeZoneInformation(TZInfo) of
    TIME_ZONE_ID_STANDARD, TIME_ZONE_ID_DAYLIGHT:
      Bias := TZInfo.Bias + TZInfo.DaylightBias; // Ajuste según horario de verano
    else
      Bias := 0; // Si no se puede determinar la zona horaria, se asume UTC
  end;
  Result := Bias / MinsPerDay; // Convertir minutos a días
end;

function LeeFechaHoraInternet: string;
var
  Http: TIdHTTP;
  SSLHandler: TIdSSLIOHandlerSocketOpenSSL;
  Respuesta: string;
  UnixTicks: Int64;
  FechaHoraUTC, FechaHoraLocal: TDateTime;
  TimeZoneOffset: TDateTime;
begin
  Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', Now); // Valor predeterminado
  Http := TIdHTTP.Create(nil);
  SSLHandler := TIdSSLIOHandlerSocketOpenSSL.Create(nil);
  try
    SSLHandler.SSLOptions.Method := sslvTLSv1_2;  // Usar TLS 1.2
    SSLHandler.SSLOptions.SSLVersions := [sslvTLSv1_2];
    SSLHandler.SSLOptions.Mode := sslmClient;    // Modo cliente
    // Configurar cliente con este manejador SSL
//    IdHTTP1.IOHandler := SSLHandler;
//    IdHTTP1.Request.UserAgent := 'Mozilla/5.0';
    // Realiza la conexión HTTP/HTTPS
//    IdHTTP1.Get('https://yourserver.com');
    Http.IOHandler := SSLHandler;
    Http.Request.Accept := 'application/json';
    Http.Request.UserAgent := 'Mozilla/5.0 (compatible; Delphi)';
    try
      // Realizar la solicitud HTTP
      Respuesta := Http.Get('https://www2.roa.es/cgi-bin/horautc');
//     Respuesta := Http.Get('https://www.google.com');

      // Convertir la respuesta (ticks Unix) a DateTime
      UnixTicks := StrToInt64(Trim(Respuesta));
      FechaHoraUTC := UnixDateDelta + (UnixTicks div SecsPerDay) + (UnixTicks mod SecsPerDay) / SecsPerDay;

      // Obtener el desfase horario
      TimeZoneOffset := GetTimeZoneOffset;
      FechaHoraLocal := FechaHoraUTC - TimeZoneOffset;

      // Devolver la fecha y hora en formato ISO 8601
      Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', FechaHoraLocal);
    except
      on E: Exception do
        // En caso de error, devolver la hora actual
        result := E.Message;
//        Result := FormatDateTime('yyyy-mm-dd"T"hh:nn:ss"Z"', Now);
    end;
  finally
    Http.Free;
    SSLHandler.Free;
  end;
end;
end.
Responder Con Cita
  #9  
Antiguo 07-12-2024
Sandy656 Sandy656 is offline
Miembro
 
Registrado: jul 2006
Posts: 21
Poder: 0
Sandy656 Va por buen camino
Gracias por la respuesta tan rápida.

He probado el código y en la línea "Respuesta := Http.Get('https://www2.roa.es/cgi-bin/horautc');" me sigue saliendo el error.
Me da que hay algún problema de compatibilidad de versiones de SSL o algo así.

Un saludo.
Responder Con Cita
  #10  
Antiguo 07-12-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.768
Poder: 5
ermendalenda Va por buen camino
Desactiva el antivirus y prueba
Responder Con Cita
  #11  
Antiguo 07-12-2024
mqm mqm is offline
Miembro
 
Registrado: nov 2006
Posts: 41
Poder: 0
mqm Va por buen camino
La dll que estoy usando son :ssleay32.dll version 1.0.2.21
libeay32.dll version 1.0.2.21
Responder Con Cita
  #12  
Antiguo 07-12-2024
delphiGar delphiGar is offline
Miembro
 
Registrado: ago 2024
Posts: 163
Poder: 1
delphiGar Va por buen camino
En delphi con Indy tiene cuatro protocolos distintos para hacerlo de una manera mucho mas sencilla y ademas te sincroniza la hora con el PC.

Os pongo un ejemplo de dos de ellos con TidTimeUDP y TidSNTP:

Código Delphi [-]
unit main;

interface

uses
  Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics,
  Vcl.Controls, Vcl.Forms, Vcl.Dialogs, IdSNTP, IdBaseComponent, IdComponent,
  IdUDPBase, IdUDPClient, IdTimeUDP, Vcl.StdCtrls;

type
  TForm5 = class(TForm)
    btnRespuesta: TButton;
    edProtocoloSNTP: TEdit;
    edHoraPTime: TEdit;
    procedure btnRespuestaClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    function obtenerFechaHoraProtocoloTiempo( server: string; sincronizarHora: Boolean = False ): TDateTime;
    function obtenerFechaHoraProtocoloSNTP( server: string; sincronizarHora: Boolean = False ): TDateTime;
  end;

var
  Form5: TForm5;

implementation

{$R *.dfm}

procedure TForm5.btnRespuestaClick(Sender: TObject);
begin
  // Pedimos hora al servidor y sincronizamos protocolo de Tiempo
  edHoraPTime.Text := DateTimeToStr( obtenerFechaHoraProtocoloTiempo( 'hora.roa.es',  True ) );
  // Pedimos hora al servidor y no sincronixamos hora protocolo SNTP
  edProtocoloSNTP.Text := DateTimeToStr( obtenerFechaHoraProtocoloSNTP( 'hora.roa.es' ) );
end;

function TForm5.obtenerFechaHoraProtocoloSNTP(server: string;  sincronizarHora: Boolean ): TDateTime;
var
  serverSNTP: TIdSNTP;
begin

  serverSNTP := TIdSNTP.Create( Self );
  serverSNTP.Host := server;
  Result := serverSNTP.DateTime;
  if ( sincronizarHora ) then
    serverSNTP.SyncTime;
 
  serverSNTP.Free;

end;

function TForm5.obtenerFechaHoraProtocoloTiempo(server: string;  sincronizarHora: Boolean  ): TDateTime;
var
  serverITimeUDP: TIdTimeUDP;
begin

  serverITimeUDP := TIdTimeUDP.Create( Self );
  serverITimeUDP.Host := server;
  Result:= serverITimeUDP.DateTime;
  if ( sincronizarHora ) then
    serverITimeUDP.SyncTime;

 serverITimeUDP.Free

end;

end.

Última edición por delphiGar fecha: 07-12-2024 a las 14:57:37.
Responder Con Cita
  #13  
Antiguo 08-12-2024
Sandy656 Sandy656 is offline
Miembro
 
Registrado: jul 2006
Posts: 21
Poder: 0
Sandy656 Va por buen camino
Hola.

He probado el código y funciona de maravilla. Solo que hay que ejecutar la aplicación en modo administrador.

Seguiré investigando el error "connecting with SSL. error 1409442E:SSL routines:SSL3_READ_BYTES: tlsv 1 alert protocol version"

Muchas gracias.
Responder Con Cita
  #14  
Antiguo 08-12-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.768
Poder: 5
ermendalenda Va por buen camino
Creo que hay una opción en la s propiedades(botón derecho raton) para que siempre se ejecute como administrador o metiendo la aplicación en un .bat y las propiedades del .bat como administrador, alguna vez lo he hecho.
Responder Con Cita
  #15  
Antiguo 08-12-2024
Sandy656 Sandy656 is offline
Miembro
 
Registrado: jul 2006
Posts: 21
Poder: 0
Sandy656 Va por buen camino
Si en las propiedades del acceso directo, en opciones avanzadas, hay un check para ejecutar como administrador. Pero ¿Habría alguna forma de actualizar la hora del sistema sin entrar como administrador?
.
Responder Con Cita
  #16  
Antiguo 08-12-2024
CarlosArjonomia CarlosArjonomia is offline
Miembro
 
Registrado: abr 2021
Posts: 90
Poder: 5
CarlosArjonomia Va por buen camino
En Windows ¿Porqué no comprobáis que el parámetro "Establecer hora automáticamente" este activado?.

Con eso ya tenéis una capa de seguridad para aseguraos que la hora es correcta.

Se puede lograr utilizando llamadas a la API de Windows y accediendo al registro, ya que esta configuración está almacenada allí.

La clave relevante del registro es:

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\W32Time\Parameters

Dentro de esta clave, el valor Type indica cómo se configura la hora del sistema:

"NTP" indica que la sincronización automática está activada (Network Time Protocol).
"NoSync" indica que no está activada.
Responder Con Cita
  #17  
Antiguo 08-12-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.768
Poder: 5
ermendalenda Va por buen camino
Cita:
Empezado por Sandy656 Ver Mensaje
Si en las propiedades del acceso directo, en opciones avanzadas, hay un check para ejecutar como administrador. Pero ¿Habría alguna forma de actualizar la hora del sistema sin entrar como administrador?
.
Si, espera
Te lo pongo
Responder Con Cita
  #18  
Antiguo 08-12-2024
ermendalenda ermendalenda is offline
Miembro
 
Registrado: ago 2021
Posts: 1.768
Poder: 5
ermendalenda Va por buen camino
Cita:
Empezado por Sandy656 Ver Mensaje
Si en las propiedades del acceso directo, en opciones avanzadas, hay un check para ejecutar como administrador. Pero ¿Habría alguna forma de actualizar la hora del sistema sin entrar como administrador?
.
El problema es que yo uso vb
pero en .net hay comandos directos.
te pongo como me funciona a mi

Generas desde la aplicacion un .bat y le pones estas 3 lineas:
"cmd /c Time " & hora_buff
"cmd /c date " & date_buff
"exit"

donde date_buff u hora_buff son las horas capturadas poniendo la fecha en formato español dd/mm/yyyy
y despues ejecutas desde el programa:
ShellExecute 0, "runas", "[pathcompleto archivo.bat]", requireAdministrator, vbNullString, 0

el shellexexute es de las apis de windows y tienes que declarar esta funcion

Private Declare Function ShellExecute Lib "shell32.dll" Alias "ShellExecuteA" (ByVal hwnd As Long, ByVal lpOperation As String, ByVal lpFile As String, ByVal lpParameters As String, ByVal lpDirectory As String, ByVal nShowCmd As Long) As Long

Segun como tengas el windows configurado te puede salir un mensaje de que es una aplicacion externa o algo asi, y le tienes que decir que no te avise mas poniendole al minimo la barra de avisos.

Te recomiendo que le pongas un sleep (espera) de 0.5segundos despues de la ejecucion del shellexecute

Última edición por ermendalenda fecha: 08-12-2024 a las 11:32:09.
Responder Con Cita
  #19  
Antiguo 08-12-2024
delphiGar delphiGar is offline
Miembro
 
Registrado: ago 2024
Posts: 163
Poder: 1
delphiGar Va por buen camino
Cita:
Empezado por Sandy656 Ver Mensaje
Hola.

He probado el código y funciona de maravilla. Solo que hay que ejecutar la aplicación en modo administrador.

Seguiré investigando el error "connecting with SSL. error 1409442E:SSL routines:SSL3_READ_BYTES: tlsv 1 alert protocol version"

Muchas gracias.
El permiso de Administrador lo requiere si estas como usuario y le indicas en la funcion que quieres sincronizar la hora ( Por esto te pide el permiso ),
si lo que quieres es recuperar solo la hora no hace falta el permiso de administrador,
lo unico que cuando llames a las funciones, no le indiques True o no indiques nada.

El ejecutable puedes ponerlo para que se ejecute en modo administrador desde las opciones del proyecto en el apartado Application -> Manifest -> Execution Level -> Require Adminsitrator

Última edición por delphiGar fecha: 08-12-2024 a las 11:32:45.
Responder Con Cita
  #20  
Antiguo 08-12-2024
Sandy656 Sandy656 is offline
Miembro
 
Registrado: jul 2006
Posts: 21
Poder: 0
Sandy656 Va por buen camino
Voy a probar lo que habéis puesto. Qué haríamos sin la ayuda de este foro. Sois los mejores.

Muchas gracias!!!!
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
TimeStamp Willo MySQL 4 22-03-2016 21:15:00
Consulta TimeStamp Jose Roman SQL 2 06-09-2012 04:03:11
TimeStamp = TimeStamp me da error Chogo Firebird e Interbase 7 16-03-2011 04:13:38
TIMESTAMP en restriccion Cañones SQL 6 28-08-2007 23:19:27
Timestamp y bde 5.2 Toni Firebird e Interbase 2 27-05-2003 09:26:33


La franja horaria es GMT +2. Ahora son las 21:05:50.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi