如题
解决方案 »
- 用户6rl请进来一下,补给你分。
- 很有意思的免费软件:Crossnet Explorer 1.0,一款支持交叉搜索的Explorer
- 同样的程序在台式机上可以得到硬盘序列号,而在笔记本电脑就得不到硬盘的序列号了,而通过其它方式就又可以得到硬盘的..
- 关于进度条
- 吐血請教!如何中斷SqlServer2000正在執行的查詢?
- adoquery怎样循环插入多行记录?最好有例子
- SOS!!!关于在DBChart中加入线条的问题
- 请问那位高手做过用db express 连接 oracle 。
- 对query作出修改后,怎么应用到表里???急
- 求《Programming windows》电子书及FINDWINDOW,SENDMESSAGE,WINEXEC,SHELLEXECUTE这几个API函数的用法
- VB中的call ceshi delphi中应该怎么写呢??
- 怎么获取打印端口(LPT)缺纸状态
参考
http://www.docin.com/p-100239332.html
不过 我见过用汇编写的全局键盘钩子, 也不用DLL的..
謝謝 bdmh ,你的頭像我一直記憶深刻!
有某些全局钩子可以不依赖于任何DLL而正常工作的。这些钩子包括,WH_JOURNALPLAYBACK,WH_JOURNALRECORD,WH_KEYBOARD_LL,WH_MOUSE_LL。为什么这些钩子可以不依赖于DLL而正常工作呢?我们可以从MSDN中得到答案,MSDN中对于这四种钩子都这样的描述“This hook is called in the context of the thread that installed it.”,翻译成中文意思是钩子函数的调用是在安装钩子的线程上下文中进行的,说得更明白些,意思就是这些钩子是在哪个线程当中安装的,其钩子函数就在哪个线程中执行。所以使用这四种钩子是达不到代码注入的效果的,当然也就可以不依赖于任何DLL了。
而除了WH_JOURNALPLAYBACK,WH_JOURNALRECORD,WH_KEYBOARD_LL,WH_MOUSE_LL这几种全局钩子,其它的全局钩子的回调函数都必须写在dll中,因为它们需要把dll注入到目标进程!