我在程序A.exe创建的主进程(PA)中通过CreateProcess()创建了一个B.exe的子进程(PB),获得了该子进程的ProcessInfo。我想通过PostMessage从PA向PB发送一个消息,PostMessage必须有目标句柄Handle的。
而我读PA保存的ProcessInfo中的hProcess和dwProcessId发现它们都和PB所对应的Application.Handle不同。
我该怎么为PA的PostMessage定位PB啊!!!!!

解决方案 »

  1.   

    那就用一个笨一点的办法不知道可不可以,运行A后findwindow找一下B的句柄看是不是可行
      

  2.   

    我想了想,打算用EnumWindows外调!
    但是,PA可能会创建N个不同参数的B.exe的子进程,而且,子进程都有自己的Application.Title的产生方式(就是所有的PBs是不会有相同的WindowText的),那么我该怎么找呢?在EnumWindows外调中, 用GetWindowText肯定不行的,GetClassName倒是可以一试!!其他还有什么好的判断方式呢???
      

  3.   

    还有一个好方法,因为我发的消息是自定义的,所以我考虑向所有的EnumWindows去PostMessage,反正其他的进程应该不会响应我的自定义消息吧!