我们知道,对于自己进程中的窗口,可以很方便的添加菜单(用AddMenu,<br>AddMenuItem),子类化(用SetWindowLong(...,GWL_WNDPROC,...)).<br><br>不同的进程之间,虽然可以通过FindWindow得到对方的窗口句柄,<br>但他们的代码段,数据段都不在同一地址空间内.即使添加菜单,更换WndProc,<br>也不会得到正确结果.进程之间实现地址空间共享只能通过2G地址以上的dll或<br>文件映像来实现. 对于已经存在的应用程序,如何使它加载自己指定的dll呢?<br><br>答案是钻一个空子.win32再设置钩子函数时,会将钩子函数所在的dll映射到<br>目标进程的地址空间中去.这样一来,在自己的进程和目标进程之间就有了一<br>段共享的地址空间,而这段空间的内容是完全可以自己定制的.余下的工作就如同<br>在一个进程内一样了.<br>