C# winfrom datagridview数据获取
用C#语言编写编写一个小软件获取外部EXE其他程序中DataGridView中的数据这里注明:意思就是本人用C#语言DataGridView能获取其他别人编写的软件里的D...
用C#语言编写 编写一个小软件 获取外部EXE其他程序中DataGridView中的数据
这里注明: 意思就是 本人用 C#语言 DataGridView 能获取 其他别人编写的 软件里的 DataGridView数据
如何实现呢? 求活动老师 或者 朋友帮帮忙 谢谢 展开
这里注明: 意思就是 本人用 C#语言 DataGridView 能获取 其他别人编写的 软件里的 DataGridView数据
如何实现呢? 求活动老师 或者 朋友帮帮忙 谢谢 展开
1个回答
展开全部
办法三种(限制Winform对Winform操作):
数据量轻量级,实时传值。用Remoting,建立类库,编写方法放在类库文件中,编译成dll文件。建立两个项目,引用他,实现remoting操作实时传值
数据量,提倡方法,代码贴出
[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. 大数据的话还是用数据库吧
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询