你的程序和Desktop不在同一进程

解决方案 »

  1.   

    SubClassing只能监视本进程,弄成Hook的好点。
      

  2.   

    能说说这个HOOK是什么吗??
    怎样才能监视其它进程??
      

  3.   

    在32位Windows下面
    每个进程的内存是单独的
    所以自身进程的函数地址到了另一进程就是非法的了
    所以SubClass只对自身进程有效要监控其他进程的消息
    只有通过全局Hook做到进程注入
    可是全局Hook的回调函数必须放入Win32 dll中
    而VB只能写Active dll
    所以需要用其他的编程工具(VC++、BCB、……)写Win32 dll
    可参考:
    http://expert.csdn.net/Expert/topic/1313/1313469.xml?temp=.1620752
      

  4.   

    不过我看过一些资料在VB中也可以调用API函数来监视其它进程,是用SETWINDOWSHOOKEX,callnexthookex,来通信,其中有一些常数就是监视中断动作的,好像WH_keyboard,wh_mouse,wh_journalrecord,wh_journalplayback,,不过经过试验,只能监控本进程的中断动作,不过其中wh_jouranlrecord未曾做实验,请高手指教。并解释下wh_keyboard,wh_mouse是不是它们的作用范围只在本进程并不是系统级别呢,看资料说其中wh_journalrecord是可监视整个系统的中断动作。这是真的吗?请有问有谁试过做这样的程序吗?
      

  5.   

    呵呵,,再一次睇资料,终于睇明了其中的内容了,原来在VB中,无论是wh_board,wh_mouse,wh_journalrecordhook,如果是在标准模块内声明的话,就只能监视本进程的中断请求,如果有监视整个系统的话,就需要在dll中声明函数。请问在vb中可以编写这个DLL,还是一定要在VC中编写吗?因为本人对VC只停留在MFC一般控件阶段。所以很想可以在VB中实现,请高手指教,多谢。