我在自己程序的窗体上,可以正常使用GetWindowLong获取自己窗体的窗口处理程序(WndProc)。但是,我在获取别的程序的handle后,却无法获取那个程序的窗口处理程序。求高手能有所指点。

解决方案 »

  1.   

    你需要好好学学Windows操作系统原理。
    两个程序原则上是隔离的,不许直接访问内存。伸手到自己的口袋拿钱包没问题,伸手到别人的口袋拿钱包不应该。
      

  2.   

    需要一个dll去注入其他进程才行,不知道谁有这样的可以供vb调用的dll提供一下,之前找不到,又不会vc,悲剧……
      

  3.   

    WIN2000开始就不允许跨进程子类化了.不过你可以自己实现这个过程,在别人进程里注入一个消息处理函数,然后再远程执行SetWindowLong.
      

  4.   

    VB搞了7年仍然可能是菜鸟。只要你学过操作系统等大学课程,立马告别业余身份。SetWindowLong让你用AddressOf传一个函数过去,这是什么?简单来说,是你函数的入口地址,这个地址是逻辑地址,对于另一个进程,这个地址毫无意义。
      

  5.   

    就算不是初学者,要搞定这个问题也够折腾啊.我见过别人实现跨进程子类化的方案,是编写一个DLL,然后插入到目标进程中对目标窗口进行子类化,再把所有截获的消息发送回自己的程序,并调用一个回调函数进行处理,处理完毕后又通过消息发回给DLL,完成一次消息处理.以上过程,就算是老手,也不是随随便便就能写得出来的吧....