利用HardwareButton操作Windows Mobile的硬件按钮

简介:

 大家知道,在Windows Mobile的应用程序中,我们可以利用模拟按键VK来模拟一些硬件按键的功能,如调用今日屏幕、锁定键盘、关闭设备、打开扬声器等等(具体可以参考黄季东的帖子:再谈Windows Mobile上的模拟按键操作)。在有些情况下,我们需要知道用户按下的是哪个硬件按钮,并且重写该硬件按钮的功能(如游戏程序)。而硬件按钮对应的是某个具体的值,我们可以使用该值来判断。在.NET CF中,HardwareButton类允许重写 Pocket PC 硬件按钮的功能。

    首先,我们需要在应用程序中添加对“Microsoft.WindowsCE.Forms”该命名中间的引用。

    然后,创建 HardwareButton 的实例。

hwb1 = new HardwareButton();
hwb2 = new HardwareButton();

……

    接着,将 AssociatedControl 属性设置为要激活的窗体或控件。

hwb1.AssociatedControl = this;
hwb2.AssociatedControl = this;

……

    最后,将 HardwareKey 属性设置为 HardwareKeys 枚举值之一。最多可配置六个硬件按钮。

hwb1.HardwareKey = HardwareKeys.ApplicationKey1;
hwb2.HardwareKey = HardwareKeys.ApplicationKey2;

……

    同时,在窗体的OnKeyUp事件函数中,添加对相应按钮的处理,

private void OnKeyUp(object sender, KeyEventArgs e)
{
    switch ((HardwareKeys)e.KeyCode)
    {
        case HardwareKeys.ApplicationKey1:
            statusBar1.Text = "Button 1 pressed.";

            ……
            break;

        case HardwareKeys.ApplicationKey2:
            statusBar1.Text = "Button 2 pressed.";

            ……
            break;

        default:
            break;
    }
}

    需要注意的是:

    1. 某些 Pocket PC 的硬件按钮数目不是六个。并且操作系统不支持所有的按钮。Windows Mobile 2003 for Pocket PC 支持四个按钮,而用于 Pocket PC 的 Windows Mobile 5.0 版软件支持五个按钮。

   2. Smartphone 和其他非 Pocket PC 类的 Windows CE 设备上不支持此类。

 

测试结果  

在WM6.0 Professional Emulator中测试,得到的具体值如下:

    --image “左右上下按键”为37, 38, 39, 40 

    --image “Enter键”为13

    --image “左侧上下键”为38,40

    --image “右侧按键”为121

    --image “拨号按键”为114

    --image “结束按键”为115

 

    在Cingular8125(WM6.0 Professional)中测试,得到的具体值如下:

    --image “左右上下按键”为37, 38, 39, 40 

    --image “Enter键”为13

    --image “无线管理键”为198

    --image “信息管理键”为193

    --image “Internet键”为194

    --image “拨号按键”为114

    --image “结束按键”为115

    --image “语音按键”为196

    --image “相机按键”为195

    以上是我的测试结果,希望对大家有用。



本文转自施炯博客园博客,原文链接:http://www.cnblogs.com/dearsj001/archive/2009/10/06/WMHardwareButton.html,如需转载请自行联系原作者

相关文章
|
1月前
|
Windows
Windows 命令提示符(CMD)操作(七):扩展命令和功能
Windows 命令提示符(CMD)操作(七):扩展命令和功能
50 0
|
1月前
|
存储 数据安全/隐私保护 Windows
Windows 命令提示符(CMD)操作(五):磁盘和磁盘操作
Windows 命令提示符(CMD)操作(五):磁盘和磁盘操作
123 0
|
1月前
|
数据安全/隐私保护 Windows
Windows 命令提示符(CMD)操作(三):用户管理
Windows 命令提示符(CMD)操作(三):用户管理
54 0
|
1月前
|
存储 缓存 数据安全/隐私保护
Windows 命令提示符(CMD)操作(二):系统信息和管理
Windows 命令提示符(CMD)操作(二):系统信息和管理
44 0
|
3月前
|
算法 安全 数据安全/隐私保护
windows快捷键和常见操作
windows快捷键和常见操作
82 0
|
4月前
|
网络协议 测试技术 Linux
软件测试/测试开发|你不知道的Windows神操作
软件测试/测试开发|你不知道的Windows神操作
29 0
|
18天前
|
人工智能 机器人 C++
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
【C++/Python】Windows用Swig实现C++调用Python(史上最简单详细,80岁看了都会操作)
|
6月前
|
人工智能 缓存 Shell
[笔记]Windows核心编程《二十》DLL的高级操作技术(二)
[笔记]Windows核心编程《二十》DLL的高级操作技术(二)
151 0
|
8月前
|
存储 安全 Linux
OpenSSH之Windows账户访问操作
OpenSSH之Windows账户访问操作
187 0
|
7月前
|
Windows
Windows基础命令(目录文件、文本、网络操作)
Windows基础命令(目录文件、文本、网络操作)
35 0