Windows仮想キーイベント
Windows端末を使っているときに仮想キーコードのイベントを発火し、疑似的にキーを入力したようにするAPI keybd_event()についてのメモ
参考ページ
learn.microsoft.com
www.inasoft.org
サンプルコード
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);