Inicio › Foros › Lenguajes de programación, desarrollo, código fuente › .Net C# VB y PowerShell › Error en SendKeys.Send de aplicación C# [RESUELTO]
Etiquetado: abierta, aplicación, application, c sharp, c#, clipboard, control, csharp, enviar, enviar tecla, externa, key, open, portapapeles, pulsación, pulsación de teclas, send, send key, tecla, teclas, visual estudio
- Este debate tiene 3 respuestas, 2 mensajes y ha sido actualizado por última vez el hace 3 años, 8 meses por Varios.
-
AutorEntradas
-
05/18/2022 a las 13:59 #47022VariosModerador
Hola, tengo una aplicación de consola desarrollada en Visual Studio .NET C# C Sharp y necesito enviar desde esta aplicación lo que contenga el portapapeles a otra aplicación abierta en el equipo, enviando la pulsación de teclas Control + V.
He visto que se usa esto para obtener la aplicación externa por el nombre del proceso (por ejemplo «notepad»):
C#1Process p = Process.GetProcessesByName("notepad").FirstOrDefault();y esto otro para enviar Control + V (pegar) a la aplicación externa:
C#1SendKeys.Send("^{v}");Pero el SendKeys.Send(«^{v}»); me da este error:
System.InvalidOperationException: ‘No se puede ejecutar SendKeys dentro de esta aplicación porque ésta no controla los mensajes de Windows. Puede cambiar la aplicación para que controle mensajes o utilizar el método SendKeys.SendWait.’
¿A qué puede ser debido?
05/18/2022 a las 14:02 #47023alonsojpdSuperadministradorPuesto que se trata de una interacción que requiere de ciertos privilegios, dado que es un envío de teclas de una aplicación a otra (y esto podría considerarlo en antivirus como un Keylogger o similar), hay que añadir las siguientes líneas al fichero de configuración de tu aplicación C#:
XHTML123<appsettings><add key="SendKeys" value="SendInput"></add></appsettings>Quedando el fichero App.config de tu aplicación con el contenido:
XHTML123456789<?xml version="1.0" encoding="utf-8" ?><configuration><startup><supportedruntime version="v4.0" sku=".NETFramework,Version=v4.7.2"></supportedruntime></startup><appsettings><add key="SendKeys" value="SendInput"></add></appsettings></configuration>El archivo app.config debe estar en la misma carpeta que el ejecutable de la aplicación.
05/19/2022 a las 22:04 #47063alonsojpdSuperadministradorEn este artículo tienes un ejemplo de código fuente en C# que envía una pulsación de teclas a una aplicación externa:
Llamar a un número de teléfono con Cisco IP Communicator desde otra aplicación en C Sharp
05/19/2022 a las 22:06 #47064VariosModeradorPerfecto, solucionado con tus indicaciones.
Muy interesante el artículo.
Muchas gracias. -
AutorEntradas
- Debes estar registrado para responder a este debate.