No MFC 编程03 - 检测全局键盘
来源:互联网 发布:python logging 回滚 编辑:程序博客网 时间:2024/05/18 00:08
有一个 "土" 办法可以做到,可是,它拿回来的东西未必合用? 因为这个办法检测全局的键盘状态 ( 甚至鼠标按钮 ),你实在分不清是不是对你自己程序的控制输入。
· 源程序如下:
// File Name: WinMain.cpp
//指定下一句说明该程序与 MFC 无关,可以加快编译速度
#define WIN32_LEAN_AND_MEAN // Say No to MFC !!
#include <windows.h>
// Name: WinMain() // 程序入口
// ------ ---------- ----------- ---------
int WINAPI WinMain( HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine, int nCmdShow )
{
MessageBox( NULL , "If you want to Exit/n/n Press ESC." ,
" By `海风 " , MB_OK | MB_TOPMOST );
while (1)
{
// 以下测试是检测按键状态,如果是 ESC 就退出
if (GetAsyncKeyState( VK_ESCAPE ) & 0x8000) // 源程序精华所在
{ MessageBox( NULL , "成功退出!" , " - Congratulate !" , MB_OK | MB_TOPMOST );
ExitProcess( NULL);
} // End of if (GetAsy ...
Sleep(5); // 做优化用, 其实用 1 就可以达到比较少的 CPU 占用
}
MessageBox(NULL,"If you Read this message,that means faile the test."," `海风 ",MB_OK);
return NULL;
}
· 本源程序精华在 if (GetAsyncKeyState( VK_ESCAPE ) & 0x8000) 它检测的是 ESC 键,由虚拟键码 VK_ESCAPE 指定。
· 如果想指定其它键钮也可以,但是你必须有其他的虚拟键码。以下方法虽是旁门左道,但是可以让你快速找到你需要的东西。
(刚才的源程序) 在 VC 环境中选中 VK_ESCAPE ,让它反蓝。然后在上面点击右键,选择 " Go to Definition of VK_ESCAPE ",(选 yes ) 然后会去到如下面的定义的文件中(WINUSER.H)。 看到 VK_ESCAPE 代表的常数了吗? 里面还有其他的虚拟键码,如 VK_LSHIFT 代表的是左面的 Shift 键 ( 甚至鼠标左键也有 ),自己研究一下吧。
好了,正如本文开头介绍,这是个 "土" 办法,它连别人程序的按键输入也捕获了。
是不是很烦 ? `海风 2002年10月03日 am 11:15
- No MFC 编程03 - 检测全局键盘
- C#全局键盘检测GetAsyncKeyState
- No MFC 编程02 - 我要独一无二 !
- HOOK全局键盘钩子
- VC全局键盘钩子
- 全局键盘钩子
- 全局键盘钩子
- 全局键盘钩子(WH_KEYBOARD)
- 全局键盘钩子
- 全局低级键盘钩子
- Java:键盘全局监听
- C#全局键盘钩子
- C#全局键盘钩子
- 鼠标键盘全局HOOK
- 全局hook键盘消息
- C#全局键盘监听
- c#-全局键盘钩子
- java全局键盘监听器
- FTP命令行使用精萃
- cannot be resolved to a type的解决方案
- 一个短信系统的服务器端设计
- 线程学习代码
- NET命令全接触!!
- No MFC 编程03 - 检测全局键盘
- 广播电视标准或组织网址大全
- 目录及文件操作命令
- No MFC 编程05 - 进程 > 线程 > 消息队列,三者的包含关系
- 程序员真实写真:35岁前成功的12条黄金法则~~~(ZT)
- SATA, PATA, SCSI 区别
- 教你使用netstat命令
- 入侵命令详解
- 入侵命令详解