Funcionando con Cronometro en milisegundos
This commit is contained in:
parent
461f007652
commit
b3c2fb82c0
84
App.xaml.cs
84
App.xaml.cs
|
@ -5,6 +5,8 @@ using System;
|
||||||
using System.Windows;
|
using System.Windows;
|
||||||
using System.Windows.Forms; // Necesitas agregar una referencia a System.Windows.Forms
|
using System.Windows.Forms; // Necesitas agregar una referencia a System.Windows.Forms
|
||||||
using Application = System.Windows.Application;
|
using Application = System.Windows.Application;
|
||||||
|
using System.Diagnostics; // Asegúrate de incluir esta directiva para usar Stopwatch
|
||||||
|
using System.Threading.Tasks;
|
||||||
|
|
||||||
namespace GTPCorrgir
|
namespace GTPCorrgir
|
||||||
{
|
{
|
||||||
|
@ -14,46 +16,96 @@ namespace GTPCorrgir
|
||||||
public partial class App : Application
|
public partial class App : Application
|
||||||
{
|
{
|
||||||
gtpask GTP = new gtpask();
|
gtpask GTP = new gtpask();
|
||||||
|
NotifyIcon notificacion;
|
||||||
|
System.Windows.Forms.Timer timer;
|
||||||
|
int segundos = 0;
|
||||||
|
bool CorreccionFinalizada = false;
|
||||||
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
|
|
||||||
protected override void OnStartup(StartupEventArgs e)
|
protected override void OnStartup(StartupEventArgs e)
|
||||||
{
|
{
|
||||||
base.OnStartup(e);
|
base.OnStartup(e);
|
||||||
|
|
||||||
|
stopwatch.Start();
|
||||||
|
|
||||||
if (System.Windows.Clipboard.ContainsText())
|
if (System.Windows.Clipboard.ContainsText())
|
||||||
{
|
{
|
||||||
GTP.TextoACorregir = System.Windows.Clipboard.GetText();
|
GTP.TextoACorregir = System.Windows.Clipboard.GetText();
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
// Inicia y espera la tarea asíncrona
|
// Muestra notificación inicial y comienza el cronómetro en el hilo de la UI
|
||||||
|
MostrarNotificacion("Espera", "Corrigiendo texto...");
|
||||||
|
IniciarCronometro();
|
||||||
|
|
||||||
|
// Ejecuta la tarea de corrección en un hilo secundario
|
||||||
Task.Run(async () =>
|
Task.Run(async () =>
|
||||||
{
|
{
|
||||||
await GTP.CorregirTexto();
|
try
|
||||||
|
|
||||||
// Asegúrate de cerrar la aplicación en el hilo de la UI
|
|
||||||
Dispatcher.Invoke(() =>
|
|
||||||
{
|
{
|
||||||
System.Windows.Clipboard.SetText(GTP.TextoCorregido);
|
await GTP.CorregirTexto();
|
||||||
MostrarNotificacion("Correccion Lista", GTP.TextoCorregido);
|
}
|
||||||
Application.Current.Shutdown();
|
catch (Exception ex)
|
||||||
});
|
{
|
||||||
|
// Manejo de errores (puedes mostrar un mensaje de error si es necesario)
|
||||||
|
Console.WriteLine("Error durante la corrección de texto: " + ex.Message);
|
||||||
|
}
|
||||||
|
finally
|
||||||
|
{
|
||||||
|
// Asegura que el timer se detenga y la notificación se actualice en el hilo de la UI
|
||||||
|
Dispatcher.Invoke(() =>
|
||||||
|
{
|
||||||
|
CorreccionFinalizada = true;
|
||||||
|
DetenerCronometro();
|
||||||
|
if (GTP.TextoCorregido != null)
|
||||||
|
{
|
||||||
|
System.Windows.Clipboard.SetText(GTP.TextoCorregido);
|
||||||
|
MostrarNotificacion("Corrección Lista", GTP.TextoCorregido);
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
MostrarNotificacion("Error", "No se pudo corregir el texto.");
|
||||||
|
}
|
||||||
|
Application.Current.Shutdown();
|
||||||
|
});
|
||||||
|
}
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
private void MostrarNotificacion(string titulo, string mensaje)
|
private void MostrarNotificacion(string titulo, string mensaje)
|
||||||
{
|
{
|
||||||
NotifyIcon notificacion = new NotifyIcon
|
notificacion = new NotifyIcon
|
||||||
{
|
{
|
||||||
Icon = SystemIcons.Information,
|
Icon = SystemIcons.Information,
|
||||||
BalloonTipTitle = titulo,
|
BalloonTipTitle = titulo,
|
||||||
BalloonTipText = mensaje,
|
BalloonTipText = mensaje,
|
||||||
Visible = true
|
Visible = true
|
||||||
};
|
};
|
||||||
notificacion.ShowBalloonTip(1000); // Muestra la notificación por 3000 milisegundos
|
notificacion.ShowBalloonTip(1000);
|
||||||
|
}
|
||||||
|
|
||||||
|
private void IniciarCronometro()
|
||||||
|
{
|
||||||
|
timer = new System.Windows.Forms.Timer();
|
||||||
|
timer.Interval = 1000; // 1000 milisegundos (1 segundo)
|
||||||
|
timer.Tick += ActualizarCronometro;
|
||||||
|
timer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
private void ActualizarCronometro(object sender, EventArgs e)
|
||||||
|
{
|
||||||
|
if (!CorreccionFinalizada) {
|
||||||
|
segundos++;
|
||||||
|
notificacion.BalloonTipText = $"Texto en {GTP.IdiomaDetectado} pasados: {Math.Round(stopwatch.ElapsedMilliseconds/1000.0,1)} s";
|
||||||
|
notificacion.ShowBalloonTip(1000);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private void DetenerCronometro()
|
||||||
|
{
|
||||||
|
timer.Stop();
|
||||||
|
timer.Dispose();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -64,8 +64,8 @@ namespace GTPCorrgir
|
||||||
|
|
||||||
TextoACorregir = "El resultado debe estar en " + IdiomaDetectado + ". " + Instrucciones + "\"" + TextoACorregir + "\"";
|
TextoACorregir = "El resultado debe estar en " + IdiomaDetectado + ". " + Instrucciones + "\"" + TextoACorregir + "\"";
|
||||||
|
|
||||||
// TextoCorregido = await CallOpenAiApi(TextoACorregir);
|
TextoCorregido = await CallOpenAiApi(TextoACorregir);
|
||||||
TextoCorregido = await CallOllamaApi(TextoACorregir);
|
//TextoCorregido = await CallOllamaApi(TextoACorregir);
|
||||||
|
|
||||||
// Elimina comillas al principio y al final si existen
|
// Elimina comillas al principio y al final si existen
|
||||||
TextoCorregido = TextoCorregido.Trim('\"');
|
TextoCorregido = TextoCorregido.Trim('\"');
|
||||||
|
|
Loading…
Reference in New Issue