https://edutainment-fun.com/hidemaru/microsoft/%E3%82%AD%E3%83%BC%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%83%88%E9%80%81%E4%BF%A1%E3%81%AE%E3%81%BE%E3%81%A8%E3%82%81%E3%80%90c%E3%80%91%E3%80%90%E8%A6%9A%E6%9B%B8%E3%83%A1%E3%83%A2%E3%80%91_2535.html
入力されたキャラクタではなく押されたキーボード位置を取得しているプログラムに対して、テンキー入力を送信しようと思ったがSendKeysではそれは実現できかった。
WindowsAPIを使って、以下のようにすれば送信できる。
class SendKeysEx { [System.Runtime.InteropServices.DllImport("user32.dll")] private static extern uint keybd_event(byte bVk, byte bScan, uint dwFlags, UIntPtr dwExtraInfo); public static void Send(byte virtualKeyCode) { // 仮想キーコード // http://kts.sakaiweb.com/virtualkeycodes.html // https://docs.microsoft.com/ja-jp/windows/win32/inputdev/virtual-key-codes?redirectedfrom=MSDN keybd_event(virtualKeyCode, 0, 0, (UIntPtr)0); System.Threading.Thread.Sleep(50); keybd_event(virtualKeyCode, 0, 2/*KEYEVENTF_KEYUP*/, (UIntPtr)0); } } // 使用例 // const byte VK_NUMPAD1 = 0x61; // SendKeysEx.Send(VK_NUMPAD1);