necesito para detectar cuando un usuario presiona Ctrl + V (independientemente del foco de la ventana - mi aplicación es probable que se reduce al mínimo), pero no debe detener el funcionamiento real de pasta .Detección Ctrl + V con RegisterHotKey pero no intercepte
he intentado un par de cosas: (estoy vinculante con éxito a las pulsaciones de teclado con RegisterHotKey)
tengo:
protected override void WndProc(ref Message m)
{
if (m.Msg == 0x312)
hotKey();
base.WndProc(ref m);
}
y he intentado lo siguiente:
void hotKey()
{
SendKeys.SendWait("^v"); //just puts 'v' instead of clipboard contents
}
y
void hotKey()
{
SendKeys.SendWait(ClipBoard.GetText());
/* This works, but since Ctrl is still down, it triggers
* all the shortcut keys for the app, e.g. if the keyboard
* contains 's' then instead of putting 's' in the app, it
* calls Ctrl+S which makes the app think the user wants
* to save.
*/
}
Actualmente, la única solución de trabajo que tengo es unirme a algo diferente, p. Ctrl + B y luego llame al SendKeys.SendWait("^v");
sin embargo, esto no es ideal.
Una solución ideal sería si mi ventana no interceptara la pulsación de tecla en primer lugar, simplemente reaccionó.
¿Puedes aclarar tu pregunta? Tengo problemas para entender tu intención. Usted mencionó que solo quiere detener la operación de pegado real, pero ¿por qué está tratando de enviar Ctrl + V nuevamente en su primera implementación de tecla de acceso directo()? ¿Estoy en lo cierto al asumir que desea interceptar operaciones de pegado en todo el sistema y almacenar los valores del portapapeles en su aplicación? –
No, escribí "I * must not * stopped the real paste operation". Deseo detectar las operaciones de pegado en todo el sistema y luego reemplazar el contenido del portapapeles para que el usuario pueda presionar Ctrl + V varias veces y cada vez que se pegue el siguiente elemento. El programa es para ayudar a acelerar (y prevenir errores) a una persona que ingresa datos. – Ozzah
Ok. Lo leí mal Puede usar ganchos de Windows para esto. Ver mi respuesta a continuación. –