代码改变世界

C#中keybd_event实例(键盘钩子模拟按键)

2011-12-03 22:17  Andrew.Wangxu  阅读(1605)  评论(0编辑  收藏  举报

这段代码实现了模拟多媒体键盘的播放、停止、下一曲、上一曲的代码:

 

引用命名空间:

using System.Runtime.InteropServices;  

 

完整代码:

static class KeyHook  
{
[DllImport("user32.dll", EntryPoint = "keybd_event")]

public static extern void keybd_event(
byte bVk, //虚拟键值
byte bScan,// 一般为0
int dwFlags, //这里是整数类型 0 为按下,2为释放
int dwExtraInfo //这里是整数类型 一般情况下设成为0
);

#region 模拟按键
public static void Play()
{
keybd_event(179, 0, 0, 0);
keybd_event(179, 0, 2, 0);
}

public static void Stop()
{
keybd_event(178, 0, 0, 0);
keybd_event(178, 0, 2, 0);
}

public static void Last()
{
keybd_event(177, 0, 0, 0);
keybd_event(177, 0, 2, 0);
}

public static void Next()
{
keybd_event(176, 0, 0, 0);
keybd_event(176, 0, 2, 0);
}
#endregion
}

 

关于keybd_event的第一个参数,请参考“虚拟键码对照表与ASCII对照表的整理”:
http://www.cnblogs.com/andrew-blog/archive/2011/12/03/CSharp_ASCII.html

参考:http://www.wxzzz.com/?id=57