WEB开发网
开发学院手机开发Windows Mobile 开发 Windows Mobile 上模拟按键操作 阅读

Windows Mobile 上模拟按键操作

 2010-03-13 20:32:00 来源:WEB开发网   
核心提示:恩,没想到阿没想到,Windows Mobile 上模拟按键操作(3),还可以模拟按键来关闭设备,只需要模拟按下VK_OFF (0xDF)就可以在SmartPhone上面实现软启动,下面这个很简单的类封装了keybd_event,并提供了一个 Sendkey的函数供调用,在Pocket PC上面实现关闭屏幕,(关于编程

恩,没想到阿没想到,还可以模拟按键来关闭设备。只需要模拟按下VK_OFF (0xDF)就可以在SmartPhone上面实现软启动,在Pocket PC上面实现关闭屏幕。

(关于编程重启Windows Mobile设备可以参考老马的文章:重启Windows Mobile设备)

6.打开扬声器

这是我之前的文章中用到的,你只需要发送VK_F16 键(0x7F)的按键消息即可。

7. 组合按键

组合按键无非是先按下一些键,再松开一些键,下面的例子演示了如何按下shift+2组合键:

//按下键

keybd_event(VK_SHIFT, 0xAA, 0, 0);

keybd_event(2, 0x83, 0 ,0);

//松开键

keybd_event(VK_SHIFT,0xAA , KeyUp, 0);

keybd_event(2, 0x83, KeyUp , 0);

好了,纸上谈兵了一会儿,最后我们来看看代码吧。

下面这个很简单的类封装了keybd_event,并提供了一个 Sendkey的函数供调用,可以完成上述的所有功能,该类仅仅用到了p/invoke兼容.Net Compact Frame work 1.0到现在的所有版本:

using System.Runtime.InteropServices;

public class SystemCalls

{

//更多按键请参考 http://msdn2.microsoft.com/en-us/library/ms927178.aspx

public const byte VK_NONAME = 0xFC; // 什么也不做

public const byte VK_ESC = 0x1B; // Smartphone的回退键

public const byte VK_F4 = 0x73; // Home Screen

public const byte VK_APP6 = 0xC6; // Smartphone上锁定键盘

public const byte VK_F22 = 0x85; // PocketPC上锁定键盘 (VK_KEYLOCK)

public const byte VK_F16 = 0x7F; // 出发扬声器

public const byte VK_OFF = 0x7F; //电源键

/// 将按键送至全局键盘缓冲区

public static void SendKey(byte key)

{

//const byte KEYEVENTF_SILENT = 0x0004;

const int KEYEVENTF_KEYUP = 0x02;

const int KEYEVENTF_KEYDOWN = 0x00;

keybd_event(key, 0, KEYEVENTF_KEYDOWN, 0);

keybd_event(key, 0, KEYEVENTF_KEYUP, 0);

}

[DllImport("coredll", SetLastError = true)]

private static extern void keybd_event(byte bVk, byte bScan, int dwFlags, int dwExtraInfo);

}

使用方法:

SystemCalls.SendKey(SystemCalls.VK_F22);

上一页  1 2 3 

Tags:Windows Mobile 模拟

编辑录入:coldstar [复制链接] [打 印]
赞助商链接