Compartilhar via


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 tratamento 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 teclas e combinações de pressionamento de tecla para o aplicativo ativo. Essa classe não pode ser instanciada. 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 bloco (~) 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, SendKeysmas você deve colocá-los entre chaves. Em outros aplicativos, os colchetes têm um significado especial que pode ser significativo quando a DDE (troca de dados dinâmica) ocorre.

Cuidado

Se o aplicativo for destinado a uso internacional com uma variedade de teclados, o uso 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 chaves que representam ações em vez de caracteres, use os códigos na tabela a seguir.

Chave Code
BACKSPACE {BACKSPACE}, {BS}ou {BKSP}
BREAK {BREAK}
CAPS LOCK {CAPSLOCK}
DEL ou DELETE {DELETE} ou {DEL}
SETA PARA BAIXO {DOWN}
FIM {END}
ENTER {ENTER} ou ~
ESC {ESC}
HELP {HELP}
HOME {HOME}
INS ou INSERT {INSERT} ou {INS}
SETA PARA A ESQUERDA {LEFT}
BLOQUEIO NUM {NUMLOCK}
PÁGINA ABAIXO {PGDN}
PÁGINA PARA CIMA {PGUP}
TELA DE IMPRESSÃO {PRTSC} (reservado para uso futuro)
SETA PARA A DIREITA {RIGHT}
BLOQUEIO DE ROLAGEM {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 chaves SHIFT, CTRL e ALT, preceda o código de chave com um ou mais dos códigos a seguir.

Chave Code
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 para essas chaves entre parênteses. Por exemplo, para especificar para segurar SHIFT enquanto E e C são pressionados, use "+(EC)". Para especificar para segurar SHIFT 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 no 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 aprimorada do Windows Vista (conhecido 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 é suscetível a problemas de tempo, mas é um pouco mais rápida e pode exigir alterações nas 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

Nome Description
Equals(Object)

Determina se o objeto especificado é igual ao objeto atual.

(Herdado de Object)
Flush()

Processa todas as mensagens do Windows atualmente 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 Objectatual.

(Herdado de Object)
Send(String)

Envia pressionamentos de teclas para o aplicativo ativo.

SendWait(String)

Envia as chaves fornecidas para o aplicativo ativo e aguarda que as mensagens sejam processadas.

ToString()

Retorna uma cadeia de caracteres que representa o objeto atual.

(Herdado de Object)

Aplica-se a