一个方法就是HOOK实现。
现在有另外一个方法,就是程序初始化创建一个线程,在线程里的代码基本为while(1)
{
if(GetAsyncKeyState(vKey)&0x8000)
{
//xxx
}
Sleep(1);
}不知道这种方法对比HOOK有什么缺点或优点?
现在有另外一个方法,就是程序初始化创建一个线程,在线程里的代码基本为while(1)
{
if(GetAsyncKeyState(vKey)&0x8000)
{
//xxx
}
Sleep(1);
}不知道这种方法对比HOOK有什么缺点或优点?
解决方案 »
- 回调 CallbackObj 在 drv1 中注册成功,如果在 drv2 中调用,如何得到 CallbackObj 的指针
- 请问怎么在combox初始化时候显示一项内容?
- c++ MFC 技术交流群!8718404
- 请教一个消息传送问题
- ·使用socket编程,是否可以以一台机器同时作为发送端和接收端呢?是否有冲突?详细见下面说明。。。
- 为什么加了个变量就执行不了了?
- 最近在看希望的《VC界面编程技术》中的问题
- 自定义的一个类一旦声明了实例,就对其附近的变量有影响,如何查错?
- 茫然,不知道自己想的对不对,希望高手指点一二,不胜感激!
- 请问MFC42D.dll是随VC还是Windows发布的?
- vc6调用sql server 2000自带备份窗体
- 网页中调用ocx
我觉得这样的优点是代码简洁
不用附加DLL
缺点么
不知道这个方法是不是能截取任意程序的键盘消息
1.不停的循环,占CPU比hook多,sleep太短占资源多,sleep太长,无法准确抓到按键
2.只能判断按键状态,不能拦截或修改按键,只是检测到有按键而已
3.不能检测到keybd_event之类的模拟按键
优点:
代码简单,省事,懒人的做法
内存应该是可控的
不过CPU是要耗很多了