VC6.0 DLL调用与创建的例子(HOOK)

调用.cpp


  #include "stdafx.h"

typedef HHOOK (* pfunc)(HINSTANCE); 
HHOOK HK;
int main(int argc, char* argv[])
{
    HINSTANCE hmod;  
hmod=LoadLibrary("dd.dll");//动态加载dll   
if(hmod!=NULL) 
{   
pfunc sethook=(pfunc)GetProcAddress(hmod,"WindowsHook");//调用dll中的函数   
        HK=sethook(hmod);  
}  
MessageBox(NULL,"这是一个钩子的例子这是一个钩子的例子这是一个钩子的例子","这是",0);
UnhookWindowsHookEx(HK);
return 0;

}



DLL内部


HHOOK WindowsHook(HINSTANCE hInstance)
{
    g_Hook=SetWindowsHookEx(WH_KEYBOARD,KeyBoardHookProc,hInstance,GetCurrentThreadId());
return g_Hook;


}


LRESULT CALLBACK KeyBoardHookProc(int nCode,WPARAM wParam,LPARAM lParam)
{
      char ch=0;
      FILE *fl;
      if( ((DWORD)lParam&0x40000000) && (HC_ACTION==nCode) ) //有键按下
      {
            if( (wParam==VK_SPACE)||(wParam==VK_RETURN)||(wParam>=0x2f ) &&(wParam<=0x100) )
            {
                  fl=fopen("key.txt","a+");    //输出到key.txt文件
                  if (wParam==VK_RETURN)
                  {
                        ch=' ';
                  }
                  else
                  {
                        BYTE ks[256];
                        GetKeyboardState(ks);
                        WORD w;
                        UINT scan=0;
                        ToAscii(wParam,scan,ks,&w,0);
                        //ch=MapVirtualKey(wParam,2); //把虚键代码变为字符
                        ch =char(w); 
MessageBox(NULL,&ch,"提示",0);
                  }
                  fwrite(&ch, sizeof(char), 1, fl);
            }
            fclose(fl);
      }
      return CallNextHookEx( g_Hook, nCode, wParam, lParam ); 
}




声明:#include <windows.h>


extern "C" _declspec (dllexport) LRESULT CALLBACK KeyBoardHookProc(int nCode,WPARAM wParam,LPARAM lParam);
extern "C" _declspec (dllexport) HHOOK WindowsHook(HINSTANCE hInstance);




评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值