求获取另外一个正运行程序中控件的内容的代码 假设应用程序A,有三个textbox控件,怎么样获取这三个控件的值,进一步,如果对其赋值程序A,不一定是.net语言写的,有可能是VC,delphi等其他语言开发工具,能否给些思路,应该和内存中控件句柄有关吧 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://www.cnblogs.com/dangjian/archive/2007/10/04/914367.html *****************************************************************************欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码) http://feiyun0112.cnblogs.com/ 先找到控件句柄FindWindowEx在先这个发送个获取文本的命令GetWindowText有加密的可能取不到 用到的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); 先用FindWindow得到顶级窗口的句柄,然后通过这个句柄去查找其子窗口,这要用到FindWindowEx,直到找到你所要的textbox为止。找到textbox的句柄后就可以对它发送WM_GETTEXT,WM_SETTEXT消息来获取,设置它的值了。hWnd = FindWindow(lpszClass,lpszWindowName); if (!hWnd.Equals(IntPtr.Zero)) { StringBuilder sbBuf = new StringBuilder(512); //这里还可用GetWindowTextLength得到TextBox长度取代512 SendMessage(hWnd,WM_GETTEXT,sbBuf.Capacity,sbBuf); } 可以把程序A做为参数传递,在程序B中操作A中的控件. 请教串口接收问题 winform如何直接生成.exe(非打包) 如何用wmi查找某个目录下的所有目录 急!!!!求 C# 执行有输入参数的存储过程的问题请教 vs2005打不开了 大家帮我解决一下 MDI的主窗体 如何 访问当前激活子窗体的方法 richtextbox与进度条progressbar 怎么做能上传的网页. 如何在asp.net中使用 log4net组件? ACCESS数据库中查询的时候日期的格式是什么?我这样写怎么查到的是空的,而实际上数据库中有这样的记录 C#动态设定textbox控件的Text值问题 如何快速批量生成不重复的随机字符串呀?
http://www.cnblogs.com/dangjian/archive/2007/10/04/914367.html
*****************************************************************************
欢迎使用CSDN论坛专用阅读器 : CSDN Reader(附全部源代码)
http://feiyun0112.cnblogs.com/
在先这个发送个获取文本的命令GetWindowText有加密的可能取不到
[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);
先用FindWindow得到顶级窗口的句柄,然后通过这个句柄去查找其子窗口,这要用到FindWindowEx,直到找到你所要的textbox为止。
找到textbox的句柄后就可以对它发送WM_GETTEXT,WM_SETTEXT消息来获取,设置它的值了。hWnd = FindWindow(lpszClass,lpszWindowName);
if (!hWnd.Equals(IntPtr.Zero))
{
StringBuilder sbBuf = new StringBuilder(512); //这里还可用GetWindowTextLength得到TextBox长度取代512
SendMessage(hWnd,WM_GETTEXT,sbBuf.Capacity,sbBuf);
}