Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase SendKeys

 

Publicado: octubre de 2016

Proporciona métodos para enviar pulsaciones de tecla a una aplicación.

Espacio de nombres:   System.Windows.Forms
Ensamblado:  System.Windows.Forms (en System.Windows.Forms.dll)

System.Object
  System.Windows.Forms.SendKeys

public class SendKeys

NombreDescripción
System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de que sea reclamado por la recolección de elementos no utilizados.(Heredado de Object).

System_CAPS_pubmethodSystem_CAPS_staticFlush()

Procesa todos los mensajes de Windows que hay actualmente en la cola de mensajes.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_pubmethodSystem_CAPS_staticSend(String)

Envía pulsaciones de tecla a la aplicación activa.

System_CAPS_pubmethodSystem_CAPS_staticSendWait(String)

Envía las pulsaciones de tecla especificadas a la aplicación activa y, a continuación, espera a que se procesen los mensajes.

System_CAPS_pubmethodToString()

Devuelve una cadena que representa el objeto actual.(Heredado de Object).

Utilice SendKeys para enviar pulsaciones de teclas y combinaciones de la aplicación activa de pulsación de tecla. No se pueden crear instancias de esta clase. Para enviar una pulsación de tecla a una clase y continuar inmediatamente con el flujo del programa, use Send. Para esperar a que los procesos iniciados por la pulsación de tecla, utilice SendWait.

Cada tecla está representada por uno o más caracteres. Para especificar un carácter único teclado, utilice el propio carácter. Por ejemplo, para representar la letra A, pase la cadena "A" al método. Para representar más de un carácter, agregue cada carácter adicional a la anterior. Para representar las letras A, B y C, especifique el parámetro como "ABC".

El signo más (+), símbolo de intercalación (^), signo de porcentaje (%), tilde (~) y paréntesis () tienen significados especiales en SendKeys. Para especificar uno de estos caracteres, inclúyalo entre llaves ({}). Por ejemplo, para especificar el signo más, utilice "{+}". Para especificar caracteres de llave, utilice "{{}" y "{}}". Los corchetes ([]) no tienen ningún significado especial para SendKeys, pero debe encerrar entre llaves. En otras aplicaciones, los corchetes tienen un significado especial que puede ser importante cuando se produce el intercambio dinámico de datos (DDE).

System_CAPS_cautionPrecaución

Si su aplicación está pensada para su uso internacional con distintos teclados, Send puede producir resultados imprevisibles y debe evitarse.

Para especificar caracteres que no se muestran cuando se presiona una tecla, como ENTRAR o TAB y claves que representan acciones en lugar de caracteres, utilice los códigos de la tabla siguiente.

Key

Código

RETROCESO

{BACKSPACE}, {BS} o {retroceso}

INTERRUMPIR

SALTO DE {}

BLOQ MAYÚS

{CAPSLOCK}

SUPR o suprimir

{DELETE} o {DEL}

FLECHA ABAJO

{ABAJO}

FIN

{END}

ENTRAR

{ENTER} o ~

ESC

{ESC}

AYUDA

{HELP}

INICIO

{PRINCIPAL}

INS o INSERT

{INSERT} o {INS}

FLECHA IZQUIERDA

{LEFT}

BLOQ NUM

{NUMLOCK}

AV PÁG

{PÁG}

RE PÁG

{PÁG}

IMPRIMIR PANTALLA

{IMPR PANT} (reservado para uso futuro)

FLECHA DERECHA

{RIGHT}

BLOQ DESPL

{BLOQ DESPL}

TAB

{TAB}

FLECHA ARRIBA

{COPIA}

F1

{F1}

F2

{F2}

F3

{F3}

F4

{F4}

F5

{F5}

F6

{F6}

F7

{F7}

F8

{F8}

F9

{F9}

F10

{F10}

F11

{F11}

F12

{F12}

F13

{F13}

F14

{F14}

F15

{F15}

F16

{F16}

Agregue el teclado

{AGREGAR}

Restar de teclado

{RESTAR}

Teclado numérico multiplicar

{MULTIPLY}

División de teclado

{DIVIDIR}

Para especificar teclas con cualquier combinación de la tecla MAYÚS, CTRL y ALT (teclas), preceda el código de tecla con uno o varios de los siguientes códigos.

Key

Código

MAYÚS

+

CTRL

^

ALT

%

Para especificar que se debe mantener presionada cualquier combinación de mayúsculas, CTRL y ALT mientras se presionan otras teclas, inserte el código para las claves entre paréntesis. Por ejemplo, para especificar que se mantenga presionada la tecla MAYÚS mientras se presionaron E y C, utilice "+ (EC)". Para especificar que se mantenga presionada la tecla MAYÚS mientras se presiona E, seguida de C sin MAYÚS, utilice "+ EC".

Para especificar la repetición de teclas, utilice el formato {tecla número}. Debe incluir un espacio entre la clave y el número. Por ejemplo, {LEFT 42} significa que presionar la tecla flecha izquierda 42 veces; {h 10} significa presionar que h 10 veces.

System_CAPS_noteNota

Porque no hay ningún método administrado para activar otra aplicación, puede utilizar esta clase en la aplicación actual o usar métodos nativos de Windows, como FindWindow y SetForegroundWindow, para forzar el foco en otras aplicaciones.

System_CAPS_noteNota

La clase SendKeys se ha actualizado para .NET Framework 3.0 para que se pueda usar en aplicaciones que se ejecutan en Windows Vista. La seguridad mejorada de Windows Vista (conocida como Control de cuentas de usuario o UAC) impide que la implementación anterior funcione según lo esperado.

La clase SendKeys es susceptible de tener problemas de temporización que algunos desarrolladores han tenido que solucionar. La implementación actualizada sigue siendo susceptible de tener problemas de temporización, pero es ligeramente más rápida y puede requerir cambios en las soluciones alternativas. La clase SendKeys intenta usar primero la implementación anterior y, si se produce un error, usa la nueva implementación. Como resultado, la clase SendKeys puede comportarse de manera diferente en los distintos sistemas operativos. Además, cuando la clase SendKeys usa la nueva implementación, el método SendWait no esperará a que se procesen los mensajes cuando se envían a otro proceso.

Si la aplicación depende de un comportamiento coherente independientemente del sistema operativo, puede forzar que la clase SendKeys use la nueva implementación agregando la siguiente opción de configuración de la aplicación al archivo app.config.

<appSettings>

<add key="SendKeys" value="SendInput"/>

</appSettings>

Para forzar que la clase SendKeys use la implementación anterior, use el valor "JournalHook" en su lugar.

En el ejemplo de código siguiente se muestra cómo utilizar el método Send. Para ejecutar el ejemplo, pegue el siguiente código en un formulario denominado Form1 que contenga un botón denominado Button1. Asegúrese de que están asociados con sus métodos de control de eventos en este ejemplo los eventos de clic. El control de botón TabIndex propiedad se debe establecer en 0. Cuando se ejecuta el ejemplo, haga doble clic en el formulario para desencadenar el evento click eventos.


// Clicking Button1 causes a message box to appear.
private void Button1_Click(System.Object sender, System.EventArgs e)
{
	MessageBox.Show("Click here!");
}


// Use the SendKeys.Send method to raise the Button1 click event 
// and display the message box.
private void Form1_DoubleClick(object sender, System.EventArgs e)
{

	// Send the enter key; since the tab stop of Button1 is 0, this
	// will trigger the click event.
	SendKeys.Send("{ENTER}");
}

.NET Framework
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: