C#中捕捉对话框的文本内容
2009-04-19 17:21
501 查看
问题的解决思路就是使用EnumWindows遍历所有的顶级父窗口,对每个顶级父窗口使用EnumChildWindows遍历它的所有控件,每个控件其实也是窗口,拿到该控件的句柄后,就可以调用GetWindowText来获取文本信息了。
具体实现时,首先需要定义以上API函数的回调函数代理:
具体实现时,首先需要定义以上API函数的回调函数代理:
/// <summary> /// 回调函数代理 /// </summary> public delegate bool CallBack(int hwnd, int lParam); 然后必须针对每个API函数定义代理的实例函数: /// <summary> /// 进程回调处理函数 /// </summary> /// <param name="hwnd"></param> /// <param name="lParam"></param> /// <returns></returns> public static bool ThreadWindowProcess(int hwnd, int lParam) { EnumChildWindows(hwnd,callBackEnumChildWindows, 0); return true; } /// <summary> /// 窗口回调处理函数 /// </summary> /// <param name="hwnd"></param> /// <param name="lParam"></param> /// <returns></returns> public static bool WindowProcess(int hwnd, int lParam) { EnumChildWindows(hwnd,callBackEnumChildWindows, 0); return true; } /// <summary> /// 子窗口回调处理函数 /// </summary> /// <param name="hwnd"></param> /// <param name="lParam"></param> /// <returns></returns> public static bool ChildWindowProcess(int hwnd, int lParam) { StringBuilder title = new StringBuilder(200); int len; len = GetWindowText(hwnd, title, 200); if(len > 0) { if(title.ToString().IndexOf(GlobalManager.ErrorMessage) != -1 ) { FindError = true; } } return true; } 最后要定义回调代理的实例 /// <summary> /// 进程窗口回调函数代理 /// </summary> public static CallBack callBackEnumThreadWindows = new CallBack(ThreadWindowProcess); /// <summary> /// 窗口回调函数代理 /// </summary> public static CallBack callBackEnumWindows = new CallBack(WindowProcess); /// <summary> /// 子窗口回调函数代理 /// </summary> public static CallBack callBackEnumChildWindows = new CallBack(ChildWindowProcess); 使用的例子: /// <summary> /// 客户端是否弹出对话框 /// </summary> /// <returns></returns> public bool IsClientPopupWindows() { bool FindError = false; EnumWindows(callBackEnumWindows,0); return FindError; } |
相关文章推荐
- C#中捕捉对话框的文本内容 EnumChildWindows
- [转]C#中捕捉对话框的文本内容 EnumChildWindows
- C#中如何捕捉对话框的文本内容
- C#中捕捉对话框的文本内容 EnumChildWindows
- C#中如何捕捉对话框的文本内容
- C#中捕捉对话框的文本内容 EnumChildWindows
- [转]C#中捕捉对话框的文本内容
- C#中如何捕捉对话框的文本内容
- [转]C#中捕捉对话框的文本内容 EnumChildWindows
- 写文本txt文件内容(wince C#)
- C# FileStream 按大小分段读取文本内容
- C#通过关键字访问文本特定内容
- c#如何将txt文本内容进行清空(C#清空txt文本内容)
- 正则表达式相关:C# RichTextBox显示html文本内容
- C#导出文本内容到word文档的方法
- C# 查找文本内容(不区分大小写,空格)替换成指定的字符(查询分析器中查看存储过程内容时用)
- C#读取PDF文件的文本内容
- C#TextBox 清除文本内容
- C# 读取文本内容,在Dev控件中显示数据
- C#将内容附带的html标签去掉转成纯文本方法