我正在编写一个应用程序,它使用SendMessage
.
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam);
我一直在尝试各种参数,我注意到,根据我发送的击键,我必须将不同的参数传递给 parameter int Msg
。
例如,我将以下定义为Msg
.
private static ushort WM_SYSKEYDOWN = 0x0104;
private static ushort WM_CHAR = 0x0102;
private static ushort WM_KEYDOWN = 0x0100;
以及以下传递给第三个参数的测试键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
,当我想发送TAB密钥时,它只在我使用时有效WM_KEYDOWN
。
我的问题是:是否有一些文档可以根据发送的密钥告诉我何时使用WM_KEYDOWN
,WM_SYSKEYDOWN
等?或者也许我做错了,并且有一种适用于任何键的一致方法?