Windows端末を使っているときに仮想キーコードのイベントを発火し、疑似的にキーを入力したようにするAPI keybd_event()についてのメモ.
↓に簡単なサンプルクラスを配置。
using System.Runtime.InteropServices;
namespace Sample
{
public static class Win32Api
{
// keybd_event()の呼び出し、win32apiを利用する.
[DllImport("user32.dll")]
private static extern uint keybd_event(byte bVk, byte bScan, uint dwFlags, int dwExtraInfo);
// キーの押上.
private static uint KEYEVENT_KEYUP => 0x0002;
// 仮想キー、0
public static byte VK_0 => 0x30;
/// <summary>
/// 指定した仮想キーコードのキーを押下 -> 押上 処理を行う.
/// </summary>
/// <param name="keycode"></param>
public static void KeyBoardEvent(byte keycode)
{
keybd_event(keycode, 0, 0, 0);
keybd_event(keycode, 0, Win32Api.KEYEVENT_KEYUP, 0);
}
}
}
基本的に押下と押上のイベントはペアで扱うのが無難。
// 指定したキーコードのキーを押下したイベントを発火する.
keybd_event(keycode, 0, 0, 0);
// 指定したキーコードのキーを押上したイベントを発火する.
keybd_event(keycode, 0, Win32Api.KEYEVENT_KEYUP, 0);
後でGistかなんかにメモを記述しておく