SendMessage函数,何时使用KEYDOWN,SYSKEYDOWN等? [英] SendMessage, When To Use KEYDOWN, SYSKEYDOWN, etc?
问题描述
我写信,使用 SendMessage函数
击键发送到另一个应用程序的应用程序。
I am writing an application that sends keystrokes to another application using SendMessage
.
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int Msg, uint wParam, uint lParam);
我一直在尝试了各种争论,我已经注意到,这取决于击键我送,我在不同的参数传递给参数 INT消息
。
例如,我有以下定义为可能值信息
。
For example, I have the following defined as possible values for Msg
.
private static ushort WM_SYSKEYDOWN = 0x0104;
private static ushort WM_CHAR = 0x0102;
private static ushort WM_KEYDOWN = 0x0100;
和以下被传递到第三个参数的测试键的wParam
:
and the following test keys that are passed in to the 3rd parameter 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 $ C 。$ C>
When I want to send the F1 key (VK_F1
) it only works whenever is use WM_SYSKEYDOWN
, when I want to send the A key it only works when I use WM_CHAR
, and when I want to send the TAB key it only works when I use WM_KEYDOWN
.
我的问题是:是否有一些文件在那里,告诉我什么时候使用 WM_KEYDOWN
, WM_SYSKEYDOWN
等基于什么键正在发送?也许我这样做是错误的,并没有对任何关键的工作一个一致的方法是什么?
My question is: is there some documentation out there that tells me when to use WM_KEYDOWN
, WM_SYSKEYDOWN
, etc. based on what key that is being sent? Or perhaps I am doing it wrong and there is one consistent method that works for any key?
推荐答案
微软解释它们之间的区别WM邮件将在此处键盘输入(视窗)。
Microsoft explains the difference between these WM messages here Keyboard Input (Windows).
WM_SYSKEYDOWN
模拟系统命令,如<大骨节病> ALT 骨节病> + <大骨节病> TAB 骨节病>用于切换窗口。
WM_SYSKEYDOWN
simulates system commands like ALT + TAB used to switch windows.
WM_CHAR
模拟用户输入就像在一个文本框中输入实例。
WM_CHAR
simulates user input like input in a text box for instance.
WM_KEYDOWN
通常与 WM_KEYUP
一起使用。请参见 WM_KEYDOWN消息(视窗)
WM_KEYDOWN
is usually used together with WM_KEYUP
. See WM_KEYDOWN message (Windows).
最有可能你会想用 WM_CHAR
。
这篇关于SendMessage函数,何时使用KEYDOWN,SYSKEYDOWN等?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!