api获取控件句柄以及内容的一些疑问
IntPtr intpt = FindWindow("notepad", null);
MessageBox.Show(v.MainWindowHandle.ToString());
IntPtr intptr = FindWindowEx(intpt, v.Handle, null, null);
我现在想获取我在桌面上代开的记事本里面的内容
目前的做法是 我去遍历 进程列表,找到 记事本的进程,获取记事本进程的句柄 现在只能获取到记事本的标题
如果调用 FindWindowEx 方法的话 后面两个参数该如何去获取, 也就是控件的句柄 和 标题 而且我如何判断某一个句柄代表的是记事本里面的文本控件?有没有谁做过这一类的东西的,给点意见或者指导
------解决方案-------------------- 也就可以获取内容了
------解决方案-------------------- 引用: Quote: 引用:
Quote: 引用:
Quote: 引用:
Quote: 引用:
Quote: 引用:
也就可以获取内容了 现在我的问题是如何通过 窗体控件的句柄去获取到里面的子控件的句柄 只要获取到子控件的句柄我就能获取到里面的内容
你可以通过一些子控件的特性去获取。
UI Automation中有AutomationID这样的唯一标识。
如果是FindWindowEx, 在父窗口中查找字窗口,可以通过你要查找的子窗口的class name或其他一些属性来判断。这些属性你可以通过spy++, UISpy 去查看一下。
我现在就是通过spy++查看的,但是我很纳闷的是现在Edit控件的句柄我获取到了,但是通过GetWindowText方法返回的sb还是空的
sb.Capacity的值是多少,不会是0吧。
不是0 是16 但是sb.length是0
那你确定你的句柄是正确的。
我现在没有VS环境,没办法去做一下。
下面的链接你参考一下吧:http://pinvoke.net/search.aspx?search=GetWindowText&namespace=[All]
里面有提到:If the window does not have a caption, the return value is a null string. This behavior is by design.不知道你是不是这样的情况。