如何让鼠标在移动时获取鼠标指向区域的文本内容,或者说鼠标指向窗口(或控件)的句柄?
比如 Spy++ 的查找窗口的功能、那些查看 * 密码的功能、灰色按钮克星、还有就是金山的屏幕取词功能,如果无法捕获该窗口或控件的句柄,如何才能获得它的文本?如何才能像那些软件一样,鼠标指那,就得到那里的文本(或者区域)??

解决方案 »

  1.   

    API WindowFormPoint()
    感谢“编程一把手”
      

  2.   

    ybzsu() 
    怎么在这时谢我啊,
    WindowFormPoint你是从我的WINSPY中学到的吗?
    在我那WINSPY中比这API有用的多着呢,现在的WINSPY加入了一点点的功能,比如获取window explorer
    文件夹中的字文件夹和文件,不过没多大技巧,想念很多人会搞得出来
      

  3.   

    上面打错了,改一下
    这时-》这里
    想念-》相信
    ybzsu() 
    以后有好东东兄弟们一起分享噢
      

  4.   

    句柄可以得到,但是我用 GetWindowText 时居然引发了 System.ExecutionEngineException ,SendMessage 的话又读不出字符(不懂怎么读取 IntPtr 中的 String);而且如果自己的程序窗口不在焦点好像就不可以了……目前郁闷中。
      

  5.   

    API声明正确了吗?
    [DllImport("User32.dll")]
    public static extern int GetWindowText(IntPtr hWnd, StringBuilder lpString, int nMaxCount);
    [DllImport("User32.dll")]
    public static extern int SendMessage(IntPtr hWnd, int uMsg, int wParam,StringBuilder lParam);
    private static string GetWindowText(IntPtr hWnd)
    {
    StringBuilder sb = new StringBuilder(1024);
    //GetWindowText(hWnd, sb, sb.Capacity);
    //SendMessage(hWnd,EM_SETPASSWORDCHAR,IntPtr.Zero,IntPtr.Zero);
    SendMessage(hWnd,WM_GETTEXT,sb.Capacity,sb);//这句能得到密码框的值,上一句不行
    return sb.ToString();
    }
    我的WINSPY已经送了好多朋友了,你让一楼的朋友转送给你好了,他有,他QQ好象是:22261318
     ybzsu() 不反对我说出你的QQ吧,我没时间回复每个朋友,只好麻烦你了,我这代码三分之一的内容还是一个老外的,自己写了关键的部份罢了
    对了楼主,你这技术分请全给一楼的,是他帮你的了
      

  6.   

    谢谢两位了!不过好像没有东西给我测试成功过,搞微软的密码框提示拒绝访问……我无语,不过能够得到句柄已经 OK 了。一楼的,您能把 winspy 发到下面的邮箱吗?我准备要上大学了,可能很少有机会上QQ。[email protected] 或
    [email protected]