本帖最后由 laoli6666 于 2010-05-01 23:01:57 编辑

解决方案 »

  1.   

    If Msg = &H4A Then 修改为 If Msg = 74 Then
      

  2.   

    谢谢二位的热心,其实VB非常简单,跟VC相比,VB就是小人书级别的小儿科,跟自然语言很接近的,保证能读懂的,而且其实这个例子里主要调用的都是API函数,我觉得应该跟VC更接近……
      

  3.   

    你安装了CreateProcess是吧?那么你再创建进程的时候,是不是用原来的CreateProcess的地址来调用的呢?
      

  4.   

    代码的主要目的是通过VC编写的DLL来实现全局Hook,当Hook到有进程创建企图时,便向VB编写的主程序发出一个Sendmessage消息,主程序收到该消息后询问用户是否允许该进程创建,通过用户的选择决定Sendmessage的返回值,然后DLL通过返回值决定是否让该进程创建。
    ======================
    看这个需求,需要Hook CreateProcess?
      

  5.   

    不会vb
    sendmessage 的时候 vb的窗口 hwnd 是否正确
    接受 wm_copydata 的窗口处理过程是否是 sendmessage 发送的那个
    程序是否发送了sendmessage
    程序是否成功的hook了 createprocess
    是否每个新创建的程序后 hook 了createproces
      

  6.   

    不好意思啊,有时候解决问题还得靠自己啊,终于发现问题所在了,问题非常简单,却困扰了我很多天,哎,惭愧惭愧!!
    为了感谢大家的关注,把问题说明在这里,就是没有注意到这句话:hExe = FindWindow(NULL, "Hook CreateProcessW"); ,原来是没找到窗口,也就是说两边不一致……