다음을 통해 공유


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

함수 작업의 다양한 측면을 제어합니다. 이 매개 변수는 다음 값 중 하나 이상일 수 있습니다.

의미
KEYEVENTF_EXTENDEDKEY
0x0001
지정한 경우 값이 0xE0(224)인 접두사 바이트가 검사 코드 앞에 섰습니다.
KEYEVENTF_KEYUP
0x0002
지정된 경우 키가 해제됩니다. 지정하지 않으면 키가 우울해집니다.

[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

추가 정보