keybd_event 함수(winuser.h)
키 입력을 합성합니다. 시스템은 이러한 합성된 키 입력을 사용하여 WM_KEYUP 또는 WM_KEYDOWN 메시지를 생성할 수 있습니다. 키보드 드라이버의 인터럽트 처리기는 keybd_event 함수를 호출합니다.
참고 이 함수가 대체되었습니다. 대신 SendInput을 사용합니다.
구문
void keybd_event(
[in] BYTE bVk,
[in] BYTE bScan,
[in] DWORD dwFlags,
[in] ULONG_PTR dwExtraInfo
);
매개 변수
[in] bVk
형식: BYTE
가상 키 코드입니다. 코드는 1~254 범위의 값이어야 합니다. 전체 목록은 가상 키 코드를 참조하세요.
[in] bScan
형식: BYTE
키에 대한 하드웨어 검사 코드입니다.
[in] dwFlags
형식:DWORD
함수 작업의 다양한 측면을 제어합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.
값 | 의미 |
---|---|
|
지정한 경우 값이 0xE0(224)인 접두사 바이트가 검사 코드 앞에 섰습니다. |
|
지정된 경우 키가 해제됩니다. 지정하지 않으면 키가 우울해집니다. |
[in] dwExtraInfo
형식: ULONG_PTR
키 스트로크와 연결된 추가 값입니다.
반환 값
없음
설명
애플리케이션은 화면 스냅샷 가져와 클립보드에 저장하기 위해 PRINTSCRN 키 누르기를 시뮬레이트할 수 있습니다. 이렇게 하려면 bVk 매개 변수가 VK_SNAPSHOT 설정된 keybd_event 호출합니다.
예제
다음 샘플 프로그램은 VK_NUMLOCK 가상 키가 있는 keybd_event 사용하여 NUM LOCK 표시등을 전환합니다. 표시등을 해제할지(FALSE) 또는 켜기(TRUE)해야 하는지 여부를 나타내는 부울 값을 사용합니다. CAPS LOCK 키(VK_CAPITAL) 및 SCROLL LOCK 키(VK_SCROLL)에는 동일한 기술을 사용할 수 있습니다.
#include <windows.h>
void SetNumLock( BOOL bState )
{
BYTE keyState[256];
GetKeyboardState((LPBYTE)&keyState);
if( (bState && !(keyState[VK_NUMLOCK] & 1)) ||
(!bState && (keyState[VK_NUMLOCK] & 1)) )
{
// Simulate a key press
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | 0,
0 );
// Simulate a key release
keybd_event( VK_NUMLOCK,
0x45,
KEYEVENTF_EXTENDEDKEY | KEYEVENTF_KEYUP,
0);
}
}
void main()
{
SetNumLock( TRUE );
}
요구 사항
요구 사항 | 값 |
---|---|
지원되는 최소 클라이언트 | Windows 2000 Professional[데스크톱 앱만] |
지원되는 최소 서버 | Windows 2000 Server[데스크톱 앱만] |
대상 플랫폼 | Windows |
헤더 | winuser.h(Windows.h 포함) |
라이브러리 | User32.lib |
DLL | User32.dll |