各位大侠,能不能 不用 dll 做钩子 给点思想小弟多谢了! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 可以啊,但是可能有写东西就钩不到了,就用SetWindowsHookEx就可以了,设置一个钩子回掉函数 全局钩子必须封装在dll里面。 做成日志钩子hk_journey,大概这个样子的。 除了全局钩子,其它的可以不写在Dll里 不用 dll 只能勾自己进程的,全局必须用 dll。因为全局钩子函数代码是要被其他进程调用的,如果不是 dll, 其他进程根本就无法转载这段代码的! 可以使用日志全局钩子。不需要日志。设置一个钩子的回调函数就可以了。型如:LRESULT CALLBACK RecordProc(int code , WPARAM wParam , LPARAM lParam)可以在MSDN上查找:JournalHooks和SetWindowsHookEx两个函数得到更好的解释。据我所知,这是唯一的一种可以不使用Dll编写全局钩子的方法。不知道有没有别的解释。其中,SetWindowsHookEX需要将第四个参数设置为0,这样就是挂接到全局。型如: HRecord=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)RecordProc,AfxGetApp()->m_hInstance,0); 附带说一下,这种东西的功能有限,还是写个Dll比较好。如果需要全局日志钩子的实例代码(mfc),可以留下邮箱。我可以给你寄一个鼠标键盘记录、回放的小东西。 不用DLL你怎么能使你的代码在别的进程空间中运行呢? 首先要明白,这种钩子是用来钩取消息的,消息队列是每个进程私有的数据结构,在Win32的平坦模式下,一个进程是无法访问另一个进程的地址空间的,如果不是全局钩子还好说,如果全局钩子就比较麻烦了,因为要能够从别的进程的消息队列中捕获消息,所以MS才会要求每个全局钩子封装成一个dll模块,这样系统可以方便地把这个dll映射到各个进程中去,单独一个exe是不可以的。当然如果你能申请驻留到系统地址范围去,也是可以的。这样就不是简单的通过API函数的方法来实现钩子了。 钩子有很多种,如果你要的API钩子,那又是另一回事。 to codewarrior(会思考的草) :日志钩子就可以单独一个exe完成全局钩子的功能,虽然有些功能不能完成。好像也是windows的唯一的一个特例…… 仅获得一个Bitmap的指针和它的大小,还有一个句柄,怎么生成一张图片 用过DSOFRAMER的高手请进 对话框重载背景图片失败 时间比较问题? 请问VC++可以编写非windows程序吗?例如unix等。 向LISTBOX添加内容 各位大侠,请给一个真情的奉献 :请问怎样才能实现在TREE 内选择一个子目录 然后点右键 以实现复制 等功能 我的非模态对话框怎么关不掉?? 哪里有winme操作系统下载? stl中的string 有转小写函数吗? 选择文件控件求救!! 求救求救
就用SetWindowsHookEx就可以了,设置一个钩子回掉函数
全局必须用 dll。因为全局钩子函数代码是要被其他进程调用的,
如果不是 dll, 其他进程根本就无法转载这段代码的!
不需要日志。设置一个钩子的回调函数就可以了。型如:LRESULT CALLBACK RecordProc(int code , WPARAM wParam , LPARAM lParam)可以在MSDN上查找:JournalHooks和SetWindowsHookEx两个函数得到更好的解释。
据我所知,这是唯一的一种可以不使用Dll编写全局钩子的方法。
不知道有没有别的解释。
其中,SetWindowsHookEX需要将第四个参数设置为0,这样就是挂接到全局。型如: HRecord=SetWindowsHookEx(WH_JOURNALRECORD,(HOOKPROC)RecordProc,AfxGetApp()->m_hInstance,0);
如果需要全局日志钩子的实例代码(mfc),可以留下邮箱。
我可以给你寄一个鼠标键盘记录、回放的小东西。
日志钩子就可以单独一个exe完成全局钩子的功能,虽然有些功能不能完成。好像也是windows的唯一的一个特例……