请问在win98下向其他程序注入自己的dll时,怎么让我的dll在其他dll都加载完了以后再被加载?用哪一种诸如方法能做到以上的问题呢?

解决方案 »

  1.   

    忘了说了,我用的是SETWINDOWHOOKEX,在其他程序启动并初始化加载dll时,总是先加载我的dll所以导致有些程序无法加载组件而不能启动。所以我想让我的dll最后一个被加载到其他程序的进程空间,因该怎或做呢?
    谢谢
      

  2.   

    使用LoadLibrary动态加载你的DLL
      

  3.   

    to  sans(sans):
    我先设了一个全局的鼠标HOOK,并且注入一个什么也不做的mousehookDLL,然后在第一次得到鼠标消息时用LoadLibrary加载我最终向注入的DLL。可是在WIN98好像还是不行!比如OUTLOOK,FOXMAIL,NETANT,...都在启动时说无法加载组件。请问是不是因为用鼠标消息还是太快了?请问应该在什么消息到来的时候动态加载DLL才是最合适的?谢谢
      

  4.   

    是不是dll库路径不对啊?
    在2000底下行嘛?需要注入代码,干嘛不直接在钩子的库里完成,还要另加载一个?岂不更麻烦?
      

  5.   

    to brant:   因为我在98下设置了全局钩子(为了注入我的dll)后,有些新启动的程序(例如:netant,outlook,foxmail...)在启动时无法加载组件,所以我想可能是因为我的dll被抢先注入进程空间而导致应该加载的组件无法及时正确加载。所以我想等程序的dll都加载完了以后再注入我的dll,可是我不知道什么时候注入我的dll,因为我不知道什么时候“应该加载“的dll都加载完了,请问怎么才能得知呢?   注意:我的dll在2000/xp下都可以正常地完成,用不着考虑dll加载的顺序问题!只有在98下不行!
      

  6.   

    我也不太明白你的问题。如果是加载顺序问题,你干脆把messagebox那个api截下来,它哪个库加载不上,你的钩子就给一起加载了吧。呵呵,我也不知道瞎说的。