【发布时间】:2012-05-16 17:11:43
【问题描述】:
我正在使用 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+");
}
}
帮助。有人吗?
【问题讨论】:
标签: c++ windows file dll shared-memory