keybd_event (winuser.h)

Mensintesis penekanan tombol. Sistem dapat menggunakan penekanan tombol yang disintesis seperti itu untuk menghasilkan pesan WM_KEYUP atau WM_KEYDOWN . Handler interupsi driver keyboard memanggil fungsi keybd_event .

Catatan Fungsi ini telah digantikan. Gunakan SendInput sebagai gantinya.
 

Sintaks

void keybd_event(
  [in] BYTE      bVk,
  [in] BYTE      bScan,
  [in] DWORD     dwFlags,
  [in] ULONG_PTR dwExtraInfo
);

Parameter

[in] bVk

Jenis: BYTE

Kode kunci virtual. Kode harus berupa nilai dalam rentang 1 hingga 254. Untuk daftar lengkapnya, lihat Kode Kunci Virtual.

[in] bScan

Jenis: BYTE

Kode pemindaian perangkat keras untuk kunci tersebut.

[in] dwFlags

Jenis: DWORD

Mengontrol berbagai aspek operasi fungsi. Parameter ini bisa menjadi satu atau beberapa nilai berikut.

Nilai Makna
KEYEVENTF_EXTENDEDKEY
0x0001
Jika ditentukan, kode pemindaian didahului oleh byte awalan yang memiliki nilai 0xE0 (224).
KEYEVENTF_KEYUP
0x0002
Jika ditentukan, kunci sedang dirilis. Jika tidak ditentukan, kunci sedang ditekan.

[in] dwExtraInfo

Jenis: ULONG_PTR

Nilai tambahan yang terkait dengan goresan kunci.

Nilai kembali

Tidak ada

Keterangan

Aplikasi dapat mensimulasikan tekan tombol PRINTSCRN untuk mendapatkan rekam jepret layar dan menyimpannya ke clipboard. Untuk melakukan ini, panggil keybd_event dengan parameter bVk yang diatur ke VK_SNAPSHOT.

Contoh

Contoh program berikut mengalihkan lampu NUM LOCK dengan menggunakan keybd_event dengan kunci virtual VK_NUMLOCK. Dibutuhkan nilai Boolean yang menunjukkan apakah lampu harus dimatikan (FALSE) atau menyala (TRUE). Teknik yang sama dapat digunakan untuk kunci CAPS LOCK (VK_CAPITAL) dan tombol 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 );
   }

Persyaratan

Persyaratan Nilai
Klien minimum yang didukung Windows 2000 Professional [hanya aplikasi desktop]
Server minimum yang didukung Windows 2000 Server [hanya aplikasi desktop]
Target Platform Windows
Header winuser.h (sertakan Windows.h)
Pustaka User32.lib
DLL User32.dll

Lihat juga