を使用してキーストロークを別のアプリケーションに送信するアプリケーションを作成していますSendMessage。
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam);
私はさまざまな引数を試してきましたが、送信するキーストロークに応じて、パラメーターに異なる引数を渡す必要があることに気付きましたint Msg。
たとえば、の可能な値として次のように定義していますMsg。
private static ushort WM_SYSKEYDOWN = 0x0104;
private static ushort WM_CHAR = 0x0102;
private static ushort WM_KEYDOWN = 0x0100;
3番目のパラメーターに渡される次のテストキーwParam:
private static ushort VK_F1 = 0x70;
private static ushort VK_A = 0x41;
private static ushort VK_TAB = 0x09;
F1キー(VK_F1)を送信したい場合は、使用WM_SYSKEYDOWN中の場合にのみ機能します。キーを送信したい場合は、Aを使用した場合にのみ機能します。キーWM_CHARを送信したい場合は、を使用した場合にのみ機能します。TABWM_KEYDOWN
私の質問は次のとおりです。送信されているキーに基づいて、などをWM_KEYDOWNいつ使用するかを教えてくれるドキュメントはありますか?WM_SYSKEYDOWNまたは、おそらく私はそれを間違ってやっていて、どのキーでも機能する一貫した方法が1つありますか?