首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Windows Mobile >

100分求教,写一个程序,后台运行,从全局捕获一个特定的按键,然后发送另一个按键消息。解决思路

2012-02-10 
100分求教,写一个程序,后台运行,从全局捕获一个特定的按键,然后发送另一个按键消息。rt运行平台:windowsmob

100分求教,写一个程序,后台运行,从全局捕获一个特定的按键,然后发送另一个按键消息。
rt

运行平台:windows   mobile   5.0

[解决办法]
WinCE上支持三种类型的Hook

#define WH_JOURNALRECORD 0
#define WH_JOURNALPLAYBACK 1
#define WH_KEYBOARD_LL 20

不过前两个使用的时候是使用如下函数:
QASetWindowsJournalHook
QAUnhookWindowsJournalHook

后者使用SetWindowsHookExW和UnhookWindowsHookEx
[解决办法]
在后台运行就简单了
捕捉按键,发送另外一个按键如下:
using System.Runtime.InteropServices;

[DllImport( "coredll.dll ", EntryPoint = "keybd_event ", SetLastError = true)]
internal static extern void Keyboard_Event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);
给Form添加KeyDown事件:
private void Form_KeyDown(object sender, System.Windows.Forms.KeyEventArgs e)
{
if(e.KeyValue == Keys.Tab)
{
//按下tab键后,转为enter
Keyboard_Event(13, 0, 0, 0);
}
}

热点排行