不知哪位有好的捕捉键盘操作的源程序.小弟急用啊.多谢了.
解决方案 »
- 如何让printdbgrideh预览窗口始终显示在最前面
- 如何实现将长字符串缩短到一定长度,其后用...补充?
- 如何判断用户在一个edit里输入的数字是否是浮点数!
- 请教ini文件的应用
- 如何还原delphi重的汉字?delphi编译后的汉字用什么编码方式存放的?
- 朝鲜MM来了
- 高分求、DBGRID 不能行用不能颜色显示的问题!DataSet 如果不是TTable的话,RecNO 永远等于 -1 我用了如一代码!帮忙看一下行吗?
- rave中如何显示计算字段?
- 请问哪里有"根据各数据自动绘曲线的决策支持组件"下载,另附哪所大学可允许大专生报考在职研究生(计算机类的).
- 请问Delphi5企业版升级包的SN?
- 请问高手怎样将TMemoryStream和Handle关联起来
- 文件
运行之后,捕捉键盘的所有操作,并把内容写入到
txt文件中.不知例程序啊.
相信对你有用
1.在 Visual C++ 中,利用 AppWizard 创建新的项目文件,并命名此项目文件为 LD18.MAK.
2.进入 AppStudio 并创建新的对话框,在对话框中,添加五个文本域,标题分别为 Control Key、 Shift Key、Alt Key、Num Lock Key 和 Caps Lock Key。
3.与刚创建的五个文本域对齐,创建另外五个文本域。标题为空,ID 分别为:ID_CONTROL_KEY、 ID_SHIFT_KEY、ID_ALT_KEY、ID_NUM_LOCK_KEY 和 ID_CAPS_LOCK_KEY。
4.改变对话框的标题为 View Key States。
5.添加两个按钮,标题分别为 Show 和 Close,ID 分别为 ID_SHOW 和 IDOK。
6.进入 ClassWizard,选择按钮 Add Class。命名对话框类为 CKeyShowDlg。
7.在 ClassWizard 中,从下拉列表中选择 CKeyShowDlg ,从列表对象中选择按钮 ID_SHOW, 从消息列表中选择消息 COMMAND,点击按钮 Add Function,函数命名为 OnShow。
void CKeyShowDlg::OnShow()
{
unsigned char kbuf[256];
GetKeyboardState(kbuf);if(kbuf[VK_CAPITAL]&1)
GetDlgItem(ID_CAPS_LOCK_KEY)->SetWindowText("On");
else
GetDlgItem(ID_CAPS_LOCK_KEY)->SetWindowText("Off");if(kbuf[VK_SHIFT]&128)
GetDlgItem(ID_SHIFT_KEY)->SetWindowText("On");
else
GetDlgItem(ID_SHIFT_KEY)->SetWindowText("Off");if(kbuf[VK_CONTROL]&128)
GetDlgItem(ID_CTRL_KEY)->SetWindowText("On");
else
GetDlgItem(ID_CTRL_KEY)->SetWindowText("Off");if(kbuf[VK_MENU]&128)
GetDlgItem(ID_ALT_KEY)->SetWindowText("On");
else
GetDlgItem(ID_ALT_KEY)->SetWindowText("Off");if(kbuf[VK_NUMLOCK]&1)
GetDlgItem(ID_NUM_LOCK_KEY)->SetWindowText("On");
else
GetDlgItem(ID_NUM_LOCK_KEY)->SetWindowText("Off");
}
9.进入 AppStudio,在菜单 IDR_MAINFAME 中,添加新的菜单 Keyboard。在菜单 Keybosrd 中, 添加菜单项 Keys Pressed,其 ID 为 ID_KEY_PRESSED。进入 ClassWizard,为对象 ID_KEY_PRESSED 和 消息 COMMAND 添加新的函数,命名此函数为 OnKeyPressed,并在此函数中添加下列代码:void CMainFrame::OnKeyPressed()
{
CKeyShowDlg dlg;dlg.DoModal();
}
10.在文件 MAINFRM.CPP 的顶部添加下列行:
#include "KeyShowDlg.h"
11.编译并运行此例子程序。