作为一个业余的任何低于VB/VBS(C++的WINAPI是我的经验的人的噩梦)我不知道如何去构建一个长的lParam C++中的简单KEYDOWN消息,可能花费更多时间寻找比值得体面的解释,有人能够准确描述如何去做这件事?C++ WINAPI:如何使用SendMessage/PostMessage WM_KEYDOWN lparam
看来,在其他论坛上几乎对这个问题的每一个回应都是“为什么”或“使用SendInput”,而没有真正回答问题;我猜测这对于人们来说太简单了。反正这里是从MSDN的描述,非常感谢一个体面的解释或链接到一个可以和样例如果可能的话:
重复计数,扫描代码, 扩展键标志,上下文代码, 以前键状态标志和 转换状态标志,如图所示...
0-15当前 消息的重复计数。该值是按键 乘以 键的自动重复次数 。如果足够长的击键长度,则发送多个消息。 但是,重复计数不是 累计。 16-23扫描码。 值取决于OEM。
24表明密钥是否是 扩展键,如右侧 ALT和CTRL键出现一个 增强101或102键键盘上。如果它是扩展密钥,则 的值为1; 否则为0. 25-28保留;做 不使用
29上下文代码。如果 ALT键处于关闭状态,而按键为 则值为1;如果WM_SYSKEYDOWN 消息被发布到活动窗口 ,则为0,因为没有窗口具有焦点的键盘 。
30上一个关键状态。如果密钥在发送 消息之前关闭,则值为 ;如果密钥 已启动,则值为0。
31过渡状态。对于WM_SYSKEYDOWN消息,值为 始终为0。
改为使用SendInput。真。如果您不相信,请提出一个问题。 – 2010-10-23 10:58:57
对SendMessage最感兴趣的是在自动GUI界面中处理重复任务的对话框(例如,在由CMS控制的数据库中添加/更新记录,这将不允许直接访问SQL数据库);理想情况下,这可以做到没有失去焦点的风险,所以没有整个计算机占用。没有强大的编码背景,所以它似乎是处理输入类型=“文件”元素的最简单/最安全的方式,而不是直接寻址表单 – 2010-10-24 13:18:26