向任何应用程序发送击键,从 MFC 应用程序中调用 .NET 以及其他

发表于:2008-05-14来源:作者:点击数: 标签:NetMFCNET应用程序net
关键字:MFC 应用程序中调用 .NET 下载本文的示例代码: CQ A0501.exe(231KB) 问:我正在尝试编写一个应用程序,该应用程序通过向另外一个应用程序发送击键来填充窗体。我是应该发送WM_KEYDOWN和WM_KEYUP消息,还是有更好的方法? 许多读者 答:虽然通过发送
关键字:MFC 应用程序中调用 .NET
下载本文的示例代码: CQA0501.exe (231KB) 

问:我正在尝试编写一个应用程序,该应用程序通过向另外一个应用程序发送击键来填充窗体。我是应该发送 WM_KEYDOWN 和 WM_KEYUP 消息,还是有更好的方法?

许多读者

答:虽然通过发送 WM_KEYDOWN 和 WM_KEYUP 消息,您可能使应用程序进行工作,但是,SendInput 是一个专门为发送该消息而设计的 API函数。它通过采用一组 INPUT 结构(每个输入事件 ─ 击键或鼠标操作 ─ 对应一个结构)对输入(包括击键和鼠标事件)进行了组合。INPUT 结构包含一个联合,该联合可以是 MOUSEINPUT 或 KEYBDINPUT(或是模拟烘烤炉的 HARDWAREINPUT)。对于键盘,它如下所示: 

struct KEYBDINPUT {
   WORD wVk;      // virt key code
   WORD wScan;    // hw scan code
   DWORD dwFlags; // flags—see doc
   DWORD time;    // time stamp, 0 = dflt
   ULONG_PTR dwExtraInfo; // app-defined
};

原文转自:http://www.ltesting.net