解决方案 »

  1.   


    遍历的话,不能获取指定的窗体,我需要抓取每一个文本框,往里面输入不同的数据;
    总有一些特征,比如GetWindowRect获取文本框的位置,这个总能区分开吧。
      

  2.   


    谢谢,这个帖子内容我已经掌握,我的问题是窗体所有文本框用SPY++查看全部一样,我想一个一个获取,并往里面写入指定的数据;请指教!
      

  3.   


    遍历的话,不能获取指定的窗体,我需要抓取每一个文本框,往里面输入不同的数据;
    总有一些特征,比如GetWindowRect获取文本框的位置,这个总能区分开吧。是不是这样理解,先全部遍历,然后一个一个获取坐标?
      

  4.   

    借个地,谢谢!
    请问能否给用API打开的无标题记事本设置自己的标题?不用在磁盘上创建一个文件的方式.对API不熟.
      

  5.   

    也可以直接通过坐标查对应的控件。API名字记不得了,GetWindowFromPoint?
      

  6.   


    /// <summary>
            /// 通过坐标获取窗体的句柄
            /// </summary>
            /// <param name="point"></param>
            /// <returns></returns>
            [DllImport("user32")]
            public static extern IntPtr WindowFromPoint(Point point);设置窗体的标题  好像是 SetFormTitle?忘了。。
    请度娘~~
      

  7.   

    我也关注。
    之前,我在论坛是发布的怎么根据句柄获取非ie内核浏览器的url没有找到合适的解决方案。
    在这里重新说下,希望能得到解答,谢。
      

  8.   

    我想知道为啥子获取句柄非要用API呢?C#里面难道没得控件句柄么?
    text1.Handle
      

  9.   

    你的 那个 .APP.0BF7771 就是类名
      

  10.   


    [DllImport("user32.dll", CharSet = CharSet.Auto, CallingConvention = CallingConvention.StdCall)]
            private static extern int GetClassName(IntPtr _hwnd, StringBuilder _wcName, int _num);//或得类性称名
      

  11.   


    用到caozhy说的遍历可以获取子窗体,问题是,所有的类名都相同,无法区分,请看最上面我发的图。
      

  12.   

    有个最笨的方法(如果你的窗体控件是固定的),找到一个有固定class或者name的控件比如叫ParentControl,然后一级一级用spy++找,直到找到你要的控件,这时候看下是第几级,比如是三级,ParentControl.child.child.child...就好了