我用一个程序获得另一个程序的句柄了,但那个程序有两个edit框,怎么区分它们的句柄呢

解决方案 »

  1.   

    我很笨我是这样子实现的
    先用SPY++查看,注意两个句柄的大小
    假设他们的父窗口的句柄为h0
    h1 = FindWindowEx(h0, 0, "edit", vbNullString)
    h2 = FindWindowEx(h0, h1, "edit", vbNullString)
    这样两个"edit"的句柄就区分开了
      

  2.   

    你先找到它们的父的句柄,然后不管是用FindWindowEx或EnumChildWindows,它们俩出现的顺序一定是一样的,这样可以了吧?楼主打五笔...
      

  3.   

    ysai(蓝色忧郁) ( ) 信誉:111 
    你怎么知道我打五笔啊
    ?
    还有啊,我用了EnumChildWindows,但我老是取到最后一个的句柄啊,我想是两个edit 都 属
    Tedit,程序分不出来,所以我想知道有没有区分他们的东西。
      

  4.   

    >>ysai(蓝色忧郁) ( ) 信誉:111 
    >>你怎么知道我打五笔啊
    >>?
    你标题的"名柄"......没话说了吧>>还有啊,我用了EnumChildWindows,但我老是取到最后一个的句柄啊,我想是两个edit 都 属
    >>Tedit,程序分不出来,所以我想知道有没有区分他们的东西。
    用EnumChildWindows的话,子窗口有多少个回调过程EnumChildProc就会执行多少次,你如果只用一个全局变量记录下句柄的话,就只能记住最后一个,正确的方法是用一个TList之类的变量,每找到一个就Add进去,回调完成后再访问它就可以了.