SendKeys Classe

Definição

Fornece métodos para enviar pressionamentos de teclas para um aplicativo.

public ref class SendKeys
public class SendKeys
type SendKeys = class
Public Class SendKeys
Herança
SendKeys

Exemplos

O exemplo de código a seguir demonstra como usar o Send método . Para executar o exemplo, cole o código a seguir em um formulário chamado Form1 que contém um botão chamado Button1. Verifique se os eventos de clique estão associados aos métodos de manipulação de eventos neste exemplo. A propriedade do controle de TabIndex botão deve ser definida como 0. Quando o exemplo estiver em execução, clique duas vezes no formulário para disparar o evento de clique do botão.

private:
   // Clicking Button1 causes a message box to appear.
   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.
   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}" );
   }

// 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}");
}

' Clicking Button1 causes a message box to appear.
Private Sub Button1_Click(ByVal sender As System.Object, _
    ByVal e As System.EventArgs) Handles Button1.Click
    MessageBox.Show("Click here!")
End Sub


' Use the SendKeys.Send method to raise the Button1 click event 
' and display the message box.
Private Sub Form1_DoubleClick(ByVal sender As Object, _
    ByVal e As System.EventArgs) Handles MyBase.DoubleClick

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

Comentários

Use SendKeys para enviar pressionamentos de tecla e combinações de pressionamento de tecla para o aplicativo ativo. Não é possível criar uma instância dessa classe. Para enviar um pressionamento de tecla para uma classe e continuar imediatamente com o fluxo do programa, use Send. Para aguardar todos os processos iniciados pelo pressionamento de tecla, use SendWait.

Cada chave é representada por um ou mais caracteres. Para especificar um único caractere de teclado, use o próprio caractere. Por exemplo, para representar a letra A, passe a cadeia de caracteres "A" para o método . Para representar mais de um caractere, acrescente cada caractere adicional ao que o precede. Para representar as letras A, B e C, especifique o parâmetro como "ABC".

O sinal de adição (+), o cursor (^), o sinal de porcentagem (%), o til (~) e os parênteses () têm significados especiais para SendKeys. Para especificar um desses caracteres, coloque-o entre chaves ({}). Por exemplo, para especificar o sinal de adição, use "{+}". Para especificar caracteres de chave, use "{{}" e "{}}". Colchetes ([ ]) não têm nenhum significado especial para SendKeys, mas você deve colocá-los entre chaves. Em outros aplicativos, os colchetes têm um significado especial que pode ser significativo quando ocorre a DDE (troca dinâmica de dados).

Cuidado

Se seu aplicativo for destinado ao uso internacional com uma variedade de teclados, o uso de Send poderá produzir resultados imprevisíveis e deve ser evitado.

Para especificar caracteres que não são exibidos quando você pressiona uma tecla, como ENTER ou TAB, e teclas que representam ações em vez de caracteres, use os códigos na tabela a seguir.

Chave Código
BACKSPACE {BACKSPACE}, {BS}ou {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL ou DELETE {DELETE} ou {DEL}
SETA PARA BAIXO {DOWN}
END {END}
Enter {ENTER} ou ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS ou INSERT {INSERT} ou {INS}
SETA PARA A ESQUERDA {LEFT}
NUM LOCK {NUMLOCK}
PAGE DOWN {PGDN}
PAGE UP {PGUP}
PRINT SCREEN {PRTSC} (reservado para uso futuro)
SETA PARA A DIREITA {RIGHT}
SCROLL LOCK {SCROLLLOCK}
TAB {TAB}
SETA PARA CIMA {UP}
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}
Adicionar teclado {ADD}
Subtração do teclado {SUBTRACT}
Multiplicação do teclado {MULTIPLY}
Divisão do teclado {DIVIDE}

Para especificar chaves combinadas com qualquer combinação das teclas SHIFT, CTRL e ALT, preceda o código de chave com um ou mais dos códigos a seguir.

Chave Código
SHIFT +
CTRL ^
ALT %

Para especificar que qualquer combinação de SHIFT, CTRL e ALT deve ser mantida pressionada enquanto várias outras teclas são pressionadas, coloque o código dessas teclas entre parênteses. Por exemplo, para especificar para manter shift pressionado enquanto E e C são pressionados, use "+(EC)". Para especificar para manter shift pressionado enquanto E é pressionado, seguido por C sem SHIFT, use "+EC".

Para especificar chaves repetidas, use o formulário {número de chave}. Você deve colocar um espaço entre chave e número. Por exemplo, {LEFT 42} significa pressionar a tecla seta para a esquerda 42 vezes; {h 10} significa pressionar H 10 vezes.

Observação

Como não há nenhum método gerenciado para ativar outro aplicativo, você pode usar essa classe dentro do aplicativo atual ou usar métodos nativos do Windows, como FindWindow e SetForegroundWindow, para forçar o foco em outros aplicativos.

Observação

A SendKeys classe foi atualizada para o .NET Framework 3.0 para habilitar seu uso em aplicativos executados no Windows Vista. A segurança avançada do Windows Vista (conhecida como Controle de Conta de Usuário ou UAC) impede que a implementação anterior funcione conforme o esperado.

A SendKeys classe é suscetível a problemas de tempo, que alguns desenvolvedores tiveram que resolver. A implementação atualizada ainda está suscetível a problemas de atraso, mas é ligeiramente mais rápida e pode exigir alterações para as soluções alternativas. A SendKeys classe tenta usar a implementação anterior primeiro e, se isso falhar, usa a nova implementação. Como resultado, a SendKeys classe pode se comportar de forma diferente em diferentes sistemas operacionais. Além disso, quando a SendKeys classe usa a nova implementação, o método não aguardará que as SendWait mensagens sejam processadas quando forem enviadas para outro processo.

Se o aplicativo depender de um comportamento consistente, independentemente do sistema operacional, você poderá forçar a SendKeys classe a usar a nova implementação adicionando a seguinte configuração de aplicativo ao arquivo app.config.

<appSettings>

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

</appSettings>

Para forçar a SendKeys classe a usar a implementação anterior, use o valor "JournalHook" em vez disso.

Métodos

Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Flush()

Processa todas as mensagens do Windows que estão na fila de mensagens.

GetHashCode()

Serve como a função de hash padrão.

(Herdado de Object)
GetType()

Obtém o Type da instância atual.

(Herdado de Object)
MemberwiseClone()

Cria uma cópia superficial do Object atual.

(Herdado de Object)
Send(String)

Envia pressionamentos de teclas para um aplicativo ativo.

SendWait(String)

Envia chaves especificadas para o aplicativo ativo e aguarda até que as mensagens sejam processadas.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a