从另一个应用程序中获取文本我想从另一个应用程序的文本框中检索文本。第二个应用程序的ProcessName是“TestTextBox”,TextBox的名称是“textBox1”。我的代码返回空字符串:[DllImport("user32.dll")]staticexternIntPtrSendMessage(IntPtrhWnd,uintMsg,longwParam,[MarshalAs(UnmanagedType.LPStr)]StringBuilderlParam);Process[]processes=Process.GetProcessesByName("TestTextBox");foreach(Processpinprocesses){IntPtrpFoundWindow=p.MainWindowHandle;constintWM_GETTEXT=0x0D;StringBuildersb=newStringBuilder();IntPtrretVal=SendMessage(pFoundWindow,WM_GETTEXT,sb0,10);MessageBox.Show(sb.ToString());在6月有一个关于如何找到子控件句柄的讨论,也许这有帮助。什么是“另一个应用程序”?这是你写的东西吗?它可以在另一台机器上运行吗?在另一个领域?在另一个用户帐户下?目标应用程序、表单或文本框会改变吗?您是否需要应用程序之间的异步(即非阻塞)通信?如果您对这些问题的回答是肯定的,您应该考虑.NetRemoting。这可从.Net2.0获得。您在发布的代码中获得了主窗体的WindowHandle,根据MSDN,窗体中的GETTEXT消息应返回其标题。如果您想从TextBox中获取文本,您应该将TextBox的WindowHandle作为第一个参数传递。您可以像其他人提到的那样使用WindowsAPI,或者您可以使用像AutoIt这样的库,这可能会使任务更容易一些。不确定您的要求是什么。以上就是C#学习教程:从另一个应用中获取文本分享的所有内容。如果对你有用,需要进一步了解C#学习教程,希望大家多多关注。本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
