Windows Mobile 上模拟按键操作
2010-03-13 20:32:00 来源:WEB开发网Windows Mobile 常用键值(VK)对应表
Virtual-Key Codes
Keys and Key Codes for Windows Mobile
以下是使用模拟按键的一些有趣示例:
1. 将应用程序放置到后台
在 SmartPhone上面有时候我们也想实现在PPC上面一样的最小化功能,可惜SmartPhone的Form上没有那个“X”可以点击。所以,你想把程序挪到后台的话就得按下回退键(通常是红色的)。我们可以通过在程序中模拟按键的方式来实现。你需要做的只是把VK_ESC 键(0x1B)送给 keybd_event。
2. 在程序中调用今日屏幕(Today Screen)
实际上就是模拟按下”Home”键。对应的键是VK_F4,对应的键值是0x73。
3. 锁定键盘
如果你想锁定你的设备,就像它待机一定时间之后做的一样,你同样可以通过模拟按键的方式来实现。在 Smartphone上面你需要使用VK_APP6 键(0xC6)。在Pocket PC上面需要用VK_F22或者VK_KEYLOCK键(键值均为0x85)。
在Windows Mobile 6.0及其以后的设备上要方便一些,直接可以使用API 函数SHDeviceLockAndPrompt
来实现锁和解锁的状态切换。
Tips VK_APP系列键并没有在Windows Embedded CE中定义,是Windows Mobile特有的。VK_APP键只有在被VK_LWIN键“包装”后才能正常使用,其用法如下:
keybd_event(VK_LWIN, 0, KEYEVENTF_SILENT, 0);
GenKeyEvent(VK_APP6);
keybd_event(VK_LWIN, 0, KEYEVENTF_SILENT | KEYEVENTF_KEYUP, 0);
复制代码
4. 防止设备进入休眠或者锁住的状态
当你在浏览网页或者看电子书的时候,尤其是如果你的显示屏比较大,当你正看得欢的时候突然屏幕被锁住了,这的确是一件令人郁闷的事。好在你可以通过模拟按键来避免这种情况发生,有按键的行为发生相当于告知了你的设备你你还在忙,你还需要它工作。不过我们应该模拟按下哪个键呢?按下哪个键可以不影响用户的使用,不影响用户的输入呢?显然,模拟数字,字符或者常见键盘操作键都似不可取的。如果你认为可以是shift或者caps-lock之类的,那就更不对了。因为一旦你模拟的按键是它们的话很可能你在程序中的输入会变成“lIkE tHiS”大小写不一。好在我们可以在VK表中找到这样一个键: VK_NONAME (0xFC)。他是一个不做任何实质性操作的保留键,也就是我们想要的。
5. 关闭设备
赞助商链接