を使用してキーストロークを別のアプリケーションに送信するアプリケーションを作成しています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つありますか?