一个方法就是HOOK实现。
现在有另外一个方法,就是程序初始化创建一个线程,在线程里的代码基本为while(1)
{
    if(GetAsyncKeyState(vKey)&0x8000)
    {
       //xxx
    }
Sleep(1);
}不知道这种方法对比HOOK有什么缺点或优点?

解决方案 »

  1.   

    我随便说两句啊
    我觉得这样的优点是代码简洁
    不用附加DLL
    缺点么
    不知道这个方法是不是能截取任意程序的键盘消息
      

  2.   

    呵呵,其实我自己没试验过HOOK,想偷懒完成任务所以才问会不会有什么问题。
      

  3.   

    hook用过,你这种方法不太懂。
      

  4.   

    缺点:
    1.不停的循环,占CPU比hook多,sleep太短占资源多,sleep太长,无法准确抓到按键
    2.只能判断按键状态,不能拦截或修改按键,只是检测到有按键而已
    3.不能检测到keybd_event之类的模拟按键
    优点:
    代码简单,省事,懒人的做法
      

  5.   


    内存应该是可控的
    不过CPU是要耗很多了