Ctrl+V para la correccion ortografica
This commit is contained in:
parent
3e2494b5a8
commit
5553729f43
47
App.xaml.cs
47
App.xaml.cs
|
@ -9,6 +9,7 @@ using System.Diagnostics; // Asegúrate de incluir esta directiva para usar Stop
|
||||||
using System.Threading.Tasks;
|
using System.Threading.Tasks;
|
||||||
using System.Globalization;
|
using System.Globalization;
|
||||||
using System.Windows.Data;
|
using System.Windows.Data;
|
||||||
|
using System.Runtime.InteropServices;
|
||||||
|
|
||||||
namespace GTPCorrgir
|
namespace GTPCorrgir
|
||||||
{
|
{
|
||||||
|
@ -26,11 +27,14 @@ namespace GTPCorrgir
|
||||||
Stopwatch stopwatch = new Stopwatch();
|
Stopwatch stopwatch = new Stopwatch();
|
||||||
private notificacion notificationWindow;
|
private notificacion notificationWindow;
|
||||||
|
|
||||||
|
KeyboardHelper pasteLogic = new KeyboardHelper();
|
||||||
|
|
||||||
protected override void OnStartup(StartupEventArgs e)
|
protected override void OnStartup(StartupEventArgs e)
|
||||||
{
|
{
|
||||||
base.OnStartup(e);
|
base.OnStartup(e);
|
||||||
|
|
||||||
|
pasteLogic.SaveCurrentWindow();
|
||||||
|
|
||||||
if (System.Windows.Clipboard.ContainsText())
|
if (System.Windows.Clipboard.ContainsText())
|
||||||
{
|
{
|
||||||
GTP.TextoACorregir = System.Windows.Clipboard.GetText();
|
GTP.TextoACorregir = System.Windows.Clipboard.GetText();
|
||||||
|
@ -59,7 +63,7 @@ namespace GTPCorrgir
|
||||||
}
|
}
|
||||||
finally
|
finally
|
||||||
{
|
{
|
||||||
Dispatcher.Invoke(async () => // Nota el 'async' aquí para permitir 'await'
|
await Dispatcher.Invoke(async () => // Nota el 'async' aquí para permitir 'await'
|
||||||
{
|
{
|
||||||
CorreccionFinalizada = true;
|
CorreccionFinalizada = true;
|
||||||
DetenerCronometro();
|
DetenerCronometro();
|
||||||
|
@ -72,9 +76,11 @@ namespace GTPCorrgir
|
||||||
{
|
{
|
||||||
var resultadoWindow = new VentanaResultado(GTP.TextoCorregido);
|
var resultadoWindow = new VentanaResultado(GTP.TextoCorregido);
|
||||||
resultadoWindow.Show();
|
resultadoWindow.Show();
|
||||||
|
await Task.Delay(1000); // Asíncrono espera 5 segundos
|
||||||
}
|
}
|
||||||
|
else if (Opciones.Instance.modo == Opciones.modoDeUso.Ortografia)
|
||||||
|
pasteLogic.RestoreAndSimulatePaste();
|
||||||
|
|
||||||
await Task.Delay(5000); // Asíncrono espera 5 segundos
|
|
||||||
Application.Current.Shutdown();
|
Application.Current.Shutdown();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
@ -142,4 +148,41 @@ namespace GTPCorrgir
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
public class KeyboardHelper
|
||||||
|
{
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern IntPtr GetForegroundWindow();
|
||||||
|
|
||||||
|
[DllImport("user32.dll", SetLastError = true)]
|
||||||
|
private static extern bool SetForegroundWindow(IntPtr hWnd);
|
||||||
|
|
||||||
|
[DllImport("user32.dll")]
|
||||||
|
private static extern void keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo);
|
||||||
|
|
||||||
|
public const int KEYEVENTF_KEYUP = 0x0002; // Key up flag
|
||||||
|
public const int VK_CONTROL = 0x11; // Control key code
|
||||||
|
public const int V = 0x56; // V key code
|
||||||
|
|
||||||
|
private IntPtr previousWindow;
|
||||||
|
|
||||||
|
public void SaveCurrentWindow()
|
||||||
|
{
|
||||||
|
previousWindow = GetForegroundWindow();
|
||||||
|
}
|
||||||
|
|
||||||
|
public void RestoreAndSimulatePaste()
|
||||||
|
{
|
||||||
|
// Restore focus to the previous window
|
||||||
|
SetForegroundWindow(previousWindow);
|
||||||
|
|
||||||
|
// Simulating Ctrl+V
|
||||||
|
keybd_event((byte)VK_CONTROL, 0x9d, 0, UIntPtr.Zero); // Ctrl Press
|
||||||
|
keybd_event((byte)V, 0x9e, 0, UIntPtr.Zero); // V Press
|
||||||
|
keybd_event((byte)V, 0x9e, KEYEVENTF_KEYUP, UIntPtr.Zero); // V Release
|
||||||
|
keybd_event((byte)VK_CONTROL, 0x9d, KEYEVENTF_KEYUP, UIntPtr.Zero); // Ctrl Release
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue