另外一个程序是别人的。且界面是有 6个edit控件,我只想要其中一个的句柄 。

解决方案 »

  1.   

    做木马啊?
    先获得程序主窗口的句柄
    再查找类名为TEDIT的子窗口
      

  2.   

    getcursorpost(Point);当前鼠标位置。windowfrompoint(Point);鼠标下的窗体FindWindowEx() 可以找到edit的句柄。
      

  3.   

    借助鼠标的话可以用ClientToScreen和WindowFromPoint函数
    暗地里进行的话好像可以用FindWindow和EnumChildWindows
      

  4.   

    不用鼠标我现在是这样写的。var
    H1,Hspmc,HGrid,H2,H3:THandle ;
    begin
      sendmessage(Handle, WM_KILLFOCUS, 0, 0); //首先使自己失去焦点
      H1:=FindWindow(nil,'专用发票');    //当到当前另外程序中 caption为专用发票的句柄
      Windows.BringWindowToTop(H1) ;  //设为当前活动的窗体  HGrid := Findwindowex(H1,0,'TEdit',nil); //得到class为TEdit的第一个控件的句柄.  但是我想得到其中第三个Tedit的句柄 。  如果用EnumChildWindows,我怎么知道得到的 Edit的句柄才是我想要的。 
      
      有没有好方法知道,某一控件的name.  或用spy++类似的软件来获得它的name.
    请大家发言祥细一点。最好贴出代码!
      

  5.   

    用spy++察看一下edit控件的类名,再用FindWindow