关于hook(急) msdn里说键盘的钩子可以挂接成全局的呀!上次鼠标钩子也是,为什么不能收到别的线程的键盘消息呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 全局钩子必须放在另外一个DLL中 我创建了一个程序:kbspy.exe还创建了一个kbhooklib.dllhook procedure就放在了kbhooklib.dll里了.不行为什么呢? 钩子函数是由系统调用的,和你的进程不在同一个地址空间,因此钩子里的全局变量在系统那个进程中并没有赋值,肯定都是NULL. 在DLL中加入全局数据段:#pragma data_seg("ShareData")HWND hWnd=NULL;//你KBSPY的窗口句柄,等等HHOOK hhk=NULL;//还要注意,这里的数据必须初始化#pragma data_seg()然后按ALT+F7分别在DEBUG和RELEASE的LINK的最下面加上/SECTION:ShareData,rws就可一了。顺便提一句,我也写了个类似的东东有兴趣我寄给你 how to give you points? KBHOOKLIB_API BOOL InjectCode(HWND hWnd){g_hWnd = hWnd; //Hook up all processes if dwThreadID is assigned to zeroif(g_hHook = ::SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,g_hModDll, 0))return TRUE;elsereturn FALSE;}g_hWnd = hWnd; <---------对g_hWnd变量进行内存共享。方法1、CreateFileMapping();2、MapViewOfFile();3、UnmapViewOfFile();4、UnmapViewOfFile(); 在dll中添上一个共享数据段,我觉得是最好的方法 高分请教一个网络爬虫程序的实现,100分在PHP社区 debug 窗口怎么调出来啊 关于进程间的全局变量的问题 关于线程中使用::PostMessage! WaitForSingleObject可否等待一个文件句柄~ 静态分割窗口以及控件显示 如何用vc做一个报表(或者谁有做水晶报表用到的动态连接库craxdrt9.dll) 为什么在debug下可以,release下却出现错误? 一个RICHEDIT的多行显示问题 关于updatedata使用的问题。 谁有在vc里加载gif动画的源码? 菜鸟问题:如何在视图中的树控件随视的大小改变而改变?
还创建了一个kbhooklib.dll
hook procedure就放在了kbhooklib.dll里了.不行为什么呢?
#pragma data_seg("ShareData")
HWND hWnd=NULL;//你KBSPY的窗口句柄,等等
HHOOK hhk=NULL;//还要注意,这里的数据必须初始化
#pragma data_seg()
然后按ALT+F7
分别在DEBUG和RELEASE的LINK的最下面加上
/SECTION:ShareData,rws
就可一了。
顺便提一句,我也写了个类似的东东有兴趣我寄给你
{
g_hWnd = hWnd;
//Hook up all processes if dwThreadID is assigned to zero
if(g_hHook = ::SetWindowsHookEx(WH_KEYBOARD,KeyboardProc,g_hModDll, 0))
return TRUE;
else
return FALSE;
}
g_hWnd = hWnd; <---------对g_hWnd变量进行内存共享。方法
1、CreateFileMapping();
2、MapViewOfFile();
3、UnmapViewOfFile();
4、UnmapViewOfFile();