键盘是计算机的重要输入设备,没有键盘,我们根本无法操作计算机。在一些打字软件中,有这样的功能,可以在屏幕上出现一个键盘,我们使用鼠标按下这个键盘的按键,就和按下真正的键盘按键一样。那这样的功能是如何实现的呢?我下面就向大家介绍一下,如何实现这个功能。
我们要模拟键盘的输入,必须使用一个API函数.这个API函数是keybd-event,它可以模拟键盘的输入。我们使用visualc++6.O来写这个程序,打开vjsual c++6.0,使用MFC AppWizard新建一个基于对话框的工程,工程名为keyboard。在对话框上加上一个button控件,标题为“按下字母键P”,在MFC ClassWizard中添加一个当我们使用鼠标单击这个控件时响应的函数.标题为”按下字母键P“的控件的响应函数代码为:
void CKeyboardDlg::Onp()
{
//这个函数的第一个参数是要模拟的按键的虚拟
//码,这个虚拟码是字母P的虚拟码,其它的参数都为0,
//这表示按下了字母P
keybd_event(0x50,0,0,0);
//下面这行代码表示按下字母P以后。抬了起来
keybd_event(0x50,0,KEYEVENTF_KEYUP,0);
}
上面这两行代码。就实现了模拟按下字母P,根据这样的原理’我们可以模拟按下了一些组合的快捷键.好实现一些不容易实现的功能。我们知道.按下键盘上windows的标志键和字母r'就可以打开运行对话框。我们可以在程序中模拟按下这两个按键,在上面的程序中加入一个按钮。标题为”打开运行对话框”.在MFC ClassWizard中添加一个当我们使用鼠标单击这个控件时响应的函数。响应函数代码为:
void CKeyboardDlg::OnButton2()
{
/*打开运行对话框*/
//模拟按下键盘的上的windows的标志键
keybd_event(0x5b,0,0,0);
//模拟按下字母r
keybd_event(0x52,0,0,NULL);
//模拟按下键盘上的windows的标志键后抬了起来
keybd_event(0x5b,0,KEYEVENTF_KEYUP,NULL);
//模拟按下键盘的上的字母键r以后抬了起来
keybd_event(0x52,0,KEYEVENTF_KEYUP,0);
}
好了,代码写完了,编译后运行,按下”打开运行对话框”后,就可以打开运行对话框了。以上的程序在windows9下,使用Visual c++6.0编译成功,运行良好。