My.Computer.Keyboard.SendKeys 메서드

업데이트: 2007년 11월

키보드에 직접 입력한 것처럼 하나 이상의 키 입력을 활성 창에 보냅니다.

' Usage
My.Computer.Keyboard.SendKeys(keys)
My.Computer.Keyboard.SendKeys(keys ,wait)
' Declaration
Public Sub SendKeys( _
   ByVal keys As String _
)
' -or-
Public Sub SendKeys( _
   ByVal keys As String, _
   ByVal wait As Boolean _
)

매개 변수

  • keys
    보낼 키를 정의하는 String 형식입니다.

  • wait
    선택적 요소입니다. 응용 프로그램을 계속하기 전에 키 입력 처리를 기다려야 할지 여부를 지정하는 Boolean 형식입니다. 기본값은 True입니다.

예외

다음 조건에서 예외가 발생할 수 있습니다.

설명

My.Computer.Keyboard.SendKeys 메서드는 SendSendWait 메서드와 비슷한 기능을 제공합니다.

wait 인수는 사용자의 응용 프로그램을 계속하기 전에 다른 응용 프로그램을 마쳐야 하는 경우 유용합니다.

참고:

다른 응용 프로그램을 활성화할 관리되는 메서드가 없으므로 현재 응용 프로그램 내에서 이 클래스를 사용하여 키를 보낼 창을 수동으로 선택하거나 FindWindow 및 SetForegroundWindow와 같은 Windows API 메서드를 사용하여 다른 응용 프로그램에 포커스를 둡니다. 자세한 내용은 연습: Windows API 호출을 참조하십시오.

keys 인수는 모든 단일 키 또는 Alt, Ctrl, Shift로 조합된 모든 키(또는 다른 키들의 모든 조합)를 지정할 수 있습니다. 각 키는 문자 "a"에 대한 a 또는 Enter 키에 대한 {ENTER}와 같이 하나 이상의 문자로 나타냅니다.

키를 Shift와 조합하려면 키 코드 앞에 +(더하기 기호)를 입력합니다. 키를 Ctrl과 조합하려면 키 코드 앞에 ^(캐럿)을 입력합니다. 키를 Alt와 조합하려면 키 코드 앞에 %(백분율 기호)를 입력합니다. 반복 키를 지정하려면 {key number} 형식을 사용합니다. key와 number 사이에 공백을 삽입해야 합니다. 예를 들어, {LEFT 42}는 "왼쪽 화살표 키를 42번 누름"이고 {h 10}은 "'h' 키를 10번 누름"이라는 의미입니다.

다음 표에서는 대응하는 키(예: Enter 또는 Tab 키)를 누를 때 표시되지 않는 문자를 지정하는 데 사용할 수 있는 코드를 보여 줍니다.

코드

백스페이스

{BACKSPACE} 또는 {BS}

Break

{BREAK}

Caps Lock

{CAPSLOCK}

Clear

{CLEAR}

Delete

{DELETE} 또는 {DEL}

아래쪽 화살표

{DOWN}

End

{END}

Enter(숫자 키패드)

{ENTER}

Enter

~

Esc

{ESCAPE} 또는 {ESC}

Help

{HELP}

Home

{HOME}

Ins 키

{INSERT}

왼쪽 화살표

{LEFT}

Num Lock

{NUMLOCK}

Page Down

{PGDN}

Page Up

{PGUP}

Return

{RETURN}

오른쪽 화살표

{RIGHT}

Scroll Lock

{SCROLLLOCK}

Tab

{TAB}

위쪽 화살표

{UP}

F1 ~ F15

{F1} ~ {F15}

예제

이 예제에서는 My.Computer.Keyboard.SendKeys 메서드를 사용하여 키 입력을 외부 응용 프로그램, 즉 Shell 함수에 의해 시작되는 계산기 응용 프로그램에 보냅니다.

Dim ProcID As Integer
' Start the Calculator application, and store the process id.
ProcID = Shell("CALC.EXE", AppWinStyle.NormalFocus)
' Activate the Calculator application.
AppActivate(ProcID)
' Send the keystrokes to the Calculator application.
My.Computer.Keyboard.SendKeys("22", True)
My.Computer.Keyboard.SendKeys("*", True)
My.Computer.Keyboard.SendKeys("44", True)
My.Computer.Keyboard.SendKeys("=", True)
' The result is 22 * 44 = 968.

요청된 프로세스 식별자가 있는 응용 프로그램을 찾을 수 없는 경우 ArgumentException 예외가 발생합니다.

Shell 함수를 호출하려면 완전 신뢰가 필요합니다(SecurityException 클래스).

요구 사항

네임스페이스:Microsoft.VisualBasic.Devices

클래스:Keyboard

어셈블리: Visual Basic 런타임 라이브러리(Microsoft.VisualBasic.dll)

프로젝트 형식별 사용 가능 여부

프로젝트 형식

사용 가능 여부

Windows 응용 프로그램

클래스 라이브러리

콘솔 응용 프로그램

Windows 컨트롤 라이브러리

웹 컨트롤 라이브러리

아니요

Windows 서비스

웹 사이트

아니요

권한

다음과 같은 사용 권한이 필요합니다.

권한

설명

FileIOPermission

파일 및 폴더에 대한 액세스 가능성을 제어합니다. 연관된 열거형: Unrestricted

UIPermission

사용자 인터페이스 및 클립보드와 관련된 권한을 제어합니다. 연관된 열거형: AllWindows

자세한 내용은 코드 액세스 보안권한 요청을 참조하십시오.

참고 항목

작업

연습: Windows API 호출

참조

My.Computer.Keyboard 개체

Send

SendWait

Keyboard.SendKeys