当前位置:编程学习 > C#/ASP.NET >>

请高手帮忙,如何获取另一程序中指定控件的内容

大家好:
    我需要用c#程序读取另一个程序中的当前窗口的一个控件的内容,请问该怎么做?我一点思路都没有,请大家帮忙。谢谢。 --------------------编程问答-------------------- 用api
找到该程序  然后找该控件
获取该控件内容 --------------------编程问答-------------------- 能举个简单的例子吗?如何找到控件?谢谢 --------------------编程问答-------------------- 不同的控件有不同的方法
Edit可以通过发送WM_GETTEXT消息得到

ListView、TreeView等等就不容易了
特别是DataGrid这类的控件更难
如果是用户自定义控件就更更难了
你要取哪种控件先说清楚

控件这个范围可大了-_-!!!!! --------------------编程问答-------------------- 是一个dephi程序的datagrid中的表格内容 --------------------编程问答-------------------- RPC --------------------编程问答-------------------- Delphi里有StringGrid、DrawGrid、DBGrid这些Windows控件没有DataGrid控件

由于这些Grid都不是Windows标准控件,不能通过简单的方法读取
一般采用勾子实现
用同版本的Delphi编写一个,这样调用VCL类里的函数地址才能一致

参考如下连接
http://topic.csdn.net/t/20050313/21/3847658.html --------------------编程问答-------------------- 学习了 --------------------编程问答-------------------- 向伴水老大学习 --------------------编程问答-------------------- 你还是拿个实际的例子出来我们给你解答一下吧,你这样问的话,真的是太笼统了,不好说啊 --------------------编程问答-------------------- 首先查找目标窗口,然后再查找目标控件句柄,给控件发送消息就可,辅助工具spy++
可能用到的API:
[DllImport("User32.dll",EntryPoint="FindWindow")] 
private static extern IntPtr FindWindow(string lpClassName,string lpWindowName); 
[DllImport("user32.dll",EntryPoint="FindWindowEx")] 
private static extern IntPtr FindWindowEx(IntPtr hwndParent,IntPtr hwndChildAfter, string lpszClass, string lpszWindow); 
[DllImport("User32.dll",EntryPoint="SendMessage")] 
private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam); 
[DllImport("user32.dll")] 
private static extern int GetWindowText(int hWnd, StringBuilder text, int size);

//如果目标窗体不是顶级窗口还可能需要先得到顶级窗口,再通过顶级窗口来查找子窗口。这要用到FindWindowEx 
hWnd = FindWindow(lpszClass,lpszWindowName); 
if (!hWnd.Equals(IntPtr.Zero)) 

SendMessage(hWnd,WM_CLOSE,(IntPtr)0,"");//关闭窗口 

--------------------编程问答-------------------- 我今天才开始学习
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,