如何从 MFC 应用程序中调用 .NET 框架
2006-07-20 11:41:42 来源:WEB开发网核心提示:本文示例源代码或素材下载 如何发送击键到其它应用程序?关于如何通过编程来发送 Ctrl+Alt+Del 击键?如何从 MFC 应用程序中调用 .NET 框架?我想编写一个应用程序,它能通过击键将信息写到另外一个应用程序的窗体中,如何从 MFC 应用程序中调用 .NET 框架,我是不是应该发送 WM_KEYDOW
本文示例源代码或素材下载
如何发送击键到其它应用程序?
关于如何通过编程来发送 Ctrl+Alt+Del 击键?
如何从 MFC 应用程序中调用 .NET 框架?
我想编写一个应用程序,它能通过击键将信息写到另外一个应用程序的窗体中。我是不是应该发送 WM_KEYDOWN 和 WM_KEYUP 消息?有没有更好的办法?
发送 WM_KEYDOWN 和 WM_KEYUP 消息也许能行得通,但 SendInput 是专门被设计用于此目的的 API 函数。它通过 INPUT 结构数组参数来合成包括击键和鼠标事件在内的输入,每个 INPUT 结构数组元素对应一个输入事件——击键或鼠标动作。INPUT 结构含有一个联合类型,其成员为 MOUSEINPUT,KEYBDINPUT (或 HARDWAREINPUT,仿真面包烤箱)。对于击键来说其 KEYBDINPUT 结构如下:
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
};
所以向另外一个应用程序发送击键其实就是建立一个 INPUT 数组,每一个数组元素对应一次击键(弹起和按下),然后调用 SendInput 函数。为了示范其实际使用方法,我编写了一个叫 Typematic 的小程序,你只要按下一个热键,便可以快速将姓名、地址、电话号码或其它信息敲入窗体中。这对于网上购物者们来说是件很理想的事情。当你第一次运行 Typematic 时,显示的对话框如 Figure 1 所示:
Figure 1 Typematic 的初始对话框
按 “OK”按钮后进入隐藏状态。其后你可以按 <WinKey>+T 来重新激活 Typematic,显示如 Figure 2 所示的对话框:
更多精彩
赞助商链接