问题如下:我是程序A启动程序B;然后A结束的时候发送一个消息给A,A然后进行处理~?
主要的问题是如果启动了两个A程序,可能发送消息错误我的想法如下: 当程序A里面启动程序B的时候可以传送一个命令行参数给B,这个命令行参数就是程序A主窗口的句柄值
然后程序A用findwindow获得程序A的窗口句柄,如果句柄值等于命令行参数,就发送消息给A但是用findwindow函数只能找到最顶层的窗口,如果根据判断这个窗口不是我用的的话我如何找到同名的第二个窗口呢?希望大牛指教~

解决方案 »

  1.   

    哦~错了,不好意思,我改一下:问题如下:我是程序A启动程序B;然后B运行结束的时候发送一个消息给A,A然后进行处理~?
    主要的问题是如果启动了两个A程序,可能发送消息错误我的想法如下: 当程序A里面启动程序B的时候可以传送一个命令行参数给B,这个命令行参数就是程序A主窗口的句柄值
    然后程序A用findwindow获得程序A的窗口句柄,如果句柄值等于命令行参数,就发送消息给A但是用findwindow函数只能找到最顶层的窗口,如果根据判断这个窗口不是我用的的话我如何找到同名的第二个窗口呢?希望大牛指教~
      

  2.   

    然后程序A用findwindow获得程序A的窗口句柄
    ==吃饱了撑的?
      

  3.   

    我X;我是程序A启动程序B;然后B运行结束的时候发送一个消息给A,A然后进行处理~?
    主要的问题是如果启动了两个A程序,可能发送消息错误我的想法如下: 当程序A里面启动程序B的时候可以传送一个命令行参数给B,这个命令行参数就是程序A主窗口的句柄值
    然后程序B用findwindow获得程序A的窗口句柄,如果句柄值等于命令行参数,就发送消息给A但是用findwindow函数只能找到最顶层的窗口,如果根据判断这个窗口不是我用的的话我如何找到同名的第二个窗口呢?希望大牛指教~
      

  4.   

    你都有了A窗口的句柄了。就直接发送消息好了。。还要findWindows干嘛
      

  5.   

    A传给B的只能是WROD型的,相当于 WORD fd = (WORD)HWND;这是可以的,但在B中只有fd;由fd是无法得到HWND的
      

  6.   

    findwindow函数只能找到最顶层的窗口findnextwindow函数可以搜索到所有窗口
      

  7.   

    findnextwindow 没有这个函数啊,msdn里面
      

  8.   

    I got it
     用EnumWindow,然后进行判断~
      

  9.   


    对对对,说错了,是GetNextWindow()
    呵呵~~
      

  10.   

    EnumWindow 加上 FindWindow 就可以找到你想要的窗口了。