C# winfrom datagridview数据获取

用C#语言编写编写一个小软件获取外部EXE其他程序中DataGridView中的数据这里注明:意思就是本人用C#语言DataGridView能获取其他别人编写的软件里的D... 用C#语言编写 编写一个小软件 获取外部EXE其他程序中DataGridView中的数据
这里注明: 意思就是 本人用 C#语言 DataGridView 能获取 其他别人编写的 软件里的 DataGridView数据
如何实现呢? 求活动老师 或者 朋友帮帮忙 谢谢
展开
 我来答
创作者zUzVB1Sl31
2015-01-20 · 编程类资料、英语学习资料
创作者zUzVB1Sl31
采纳数:1331 获赞数:5975

向TA提问 私信TA
展开全部

办法三种(限制Winform对Winform操作):

  1. 数据量轻量级,实时传值。用Remoting,建立类库,编写方法放在类库文件中,编译成dll文件。建立两个项目,引用他,实现remoting操作实时传值

  2. 数据量,提倡方法,代码贴出

    [DllImport("User32.dll", EntryPoint = "FindWindow")]
            public extern static IntPtr FindWindow(string lpClassName, string lpWindowName);
            [DllImport("User32.dll", EntryPoint = "FindWindowEx")]
            public static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpClassName, string lpWindowName);
            [DllImport("User32.dll", EntryPoint = "FindEx")]
            public static extern IntPtr FindEx(IntPtr hwnd, IntPtr hwndChild, string lpClassName, string lpWindowName);
            [DllImport("User32.dll", EntryPoint = "SendMessage")]
            private static extern int SendMessage(IntPtr hWnd, int Msg, IntPtr wParam, string lParam);
            [DllImport("user32.dll ", EntryPoint = "GetDlgItem")]
            public static extern IntPtr GetDlgItem(IntPtr hParent, int nIDParentItem);
            [DllImport("user32.dll", EntryPoint = "GetWindowText")]
            public static extern int GetWindowText(IntPtr hwnd, StringBuilder lpString, int cch);
    //在事件里写
    IntPtr maindHwnd = FindWindow(null, "Form1"); //获得句柄   
                int i = 0;
                if (maindHwnd != IntPtr.Zero)
                {
                    MessageBox.Show("找到了窗体!");
                    //控件id
                    int controlId = 0x000003F4;
                    //获取子窗口句柄
                    IntPtr EdithWnd = GetDlgItem(maindHwnd, controlId);
                    SendMessage(EdithWnd, i, (IntPtr)0, string.Format("当前时间是:{0}", DateTime.Now)); //赋值没问题,表示句柄正确
                    StringBuilder stringBuilder = new StringBuilder(512);
                    GetWindowText(EdithWnd, stringBuilder, stringBuilder.Capacity);
                    MessageBox.Show(string.Format("取到的值是:{0}", stringBuilder.ToString()));//取值一直是空字符串
                }
                else
                {
                    MessageBox.Show("没有找到窗口");
                }

3. 大数据的话还是用数据库吧

推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式