如果你知道那个文本框的注册类名,自然好办,用FindWindow就可以了,
如果不知道的话,就必须的用windowfrompoint结合你的想象力来捕获它了,
当然你可以枚举所有具有WS_EDIT样式的窗体,那就是文本框了。
注意,只能捕捉到符合系统规格的文本框,如果我自己编了一个的话,你就查不到了:)

解决方案 »

  1.   

    用 API GetPoint 得到你要控件的Position,再用WindowFormPoint得到句柄.
      

  2.   

    不是: GetPoint 而是:GetCursorPossorrypdsoft.yeah.net
      

  3.   

    【VB声明】
      Private Declare Function FindWindowEx Lib "user32" Alias "FindWindowExA" (ByVal hWnd1 As Long, ByVal hWnd2 As Long, ByVal lpsz1 As String, ByVal lpsz2 As String) As Long【别名】
      FindWindowExA【说明】
      在窗口列表中寻找与指定条件相符的第一个子窗口 【返回值】
      Long,找到的窗口的句柄。如未找到相符窗口,则返回零。会设置GetLastError 【参数表】
      hWnd1 ----------  Long,在其中查找子的父窗口。如设为零,表示使用桌面窗口(通常说的顶级窗口都被认为是桌面的子窗口,所以也会对它们进行查找)  hWnd2 ----------  Long,从这个窗口后开始查找。这样便可利用对FindWindowEx的多次调用找到符合条件的所有子窗口。如设为零,表示从第一个子窗口开始搜索  lpsz1 ----------  String,欲搜索的类名。零表示忽略  lpsz2 ----------  String,欲搜索的类名。零表示忽略【VB声明】
      Private Declare Function GetWindow Lib "user32" Alias "GetWindow" (ByVal hwnd As Long, ByVal wCmd As Long) As Long【说明】
      获得一个窗口的句柄,该窗口与某源窗口有特定的关系 【返回值】
      Long,由wCmd决定的一个窗口的句柄。如没有找到相符窗口,或者遇到错误,则返回零值。会设置GetLastError 【备注】
      兄弟或同级是指在整个分级结构中位于同一级别的窗口。如某个窗口有五个子窗口,那五个窗口就是兄弟窗口。尽管GetWindow可用于枚举窗口,但倘若要在枚举过程中重新定位、创建和清除窗口,那么EnumWindows和EnumChildWindows更为可靠【参数表】
      hwnd -----------  Long,源窗口  wCmd -----------  Long,指定结果窗口与源窗口的关系,它们建立在下述常数基础上:
      GW_CHILD
      寻找源窗口的第一个子窗口
      GW_HWNDFIRST
      为一个源子窗口寻找第一个兄弟(同级)窗口,或寻找第一个顶级窗口
      GW_HWNDLAST
      为一个源子窗口寻找最后一个兄弟(同级)窗口,或寻找最后一个顶级窗口
      GW_HWNDNEXT
      为源窗口寻找下一个兄弟窗口
      GW_HWNDPREV
      为源窗口寻找前一个兄弟窗口
      GW_OWNER
      寻找窗口的所有者