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입니다.
예외
다음 조건에서 예외가 발생할 수 있습니다.
- 사용자 권한이 부족한 부분 신뢰 상태(SecurityException)
설명
My.Computer.Keyboard.SendKeys 메서드는 Send 및 SendWait 메서드와 비슷한 기능을 제공합니다.
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 서비스 |
예 |
웹 사이트 |
아니요 |
권한
다음과 같은 사용 권한이 필요합니다.
권한 |
설명 |
---|---|
파일 및 폴더에 대한 액세스 가능성을 제어합니다. 연관된 열거형: Unrestricted |
|
사용자 인터페이스 및 클립보드와 관련된 권한을 제어합니다. 연관된 열거형: AllWindows |
자세한 내용은 코드 액세스 보안 및 권한 요청을 참조하십시오.