回答
不要认为这是可能的,windows API调用不会让你深入挖掘到另一个应用程序。我拥有的一个想法是强制执行屏幕截图,然后在生成的图像上使用OCR,但是在被黑客入侵的解决方案计量器中这个排名很高。有没有你想要完成的东西,如确定一个特定的过程完成?
您必须获取托管文本框的应用程序的窗口句柄,然后获取要从中获取文本的实际控件的句柄。然后,您可以发送WM_GETTEXT消息到该控件以读取该控件的值。您需要使用某个窗口间谍应用程序来获取托管在窗口中的控件的详细信息,例如AutoIt窗口信息工具。
我能找到一个关于Expert Exchange的例子,详细说明如何执行上面的读取记事本中编辑控件的细节:http://www.experts-exchange.com/Programming/Languages/.NET/Visual_CSharp/Q_23748618.html(滚动到底部寻找答案)。
private const int WM_GETTEXTLENGTH = 0x000E;
private const int WM_GETTEXT = 0x000D;
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindow(string lpClassName, string lpWindowName);
[DllImport("user32.dll", SetLastError = true)]
static extern IntPtr FindWindowEx(IntPtr hwndParent, IntPtr hwndChildAfter, string lpszClass, string lpszWindow);
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, StringBuilder lParam);
[DllImport("user32.dll")]
public static extern int SendMessage(IntPtr hWnd, int msg, int wParam, int lParam);
IntPtr notepad = FindWindow("notepad", null);
IntPtr editx = FindWindowEx(notepad, IntPtr.Zero, "edit", null);
int length = SendMessage(editx, WM_GETTEXTLENGTH, 0, 0);
StringBuilder text = new StringBuilder(length);
int hr = SendMessage(editx, WM_GETTEXT, length, text);
Console.WriteLine(text);
仅供参考,如果您是通过谷歌提交的,专家交换只会列出所有答案,因此您的链接不起作用。 – 2010-12-15 00:21:49
谢谢Mystere Man我不知道。搜索谷歌[网站:experts-exchange.com如何从一个Windows控件使用C#]文本],并应该让你到那里。 – 2010-12-15 00:26:47
谢谢,这对我工作! – 2010-12-15 14:13:29
这是一个长镜头,但我记得叫“HawkEye”那你能只要代码没有被混淆或像这样深入到一个.NET应用程序的控制树的应用程序。代码似乎已经开放源代码,所以你永远不知道你会发现哪里有用/无用。
- 1. 如何从窗口中获取文本?
- 2. 从Spy ++窗口中获取文本
- 3. 从弹出窗口中获取文本
- 4. 从c中的一个窗体的文本框中获取文本
- 5. c#窗口中的文本框形式
- 6. 使用C++从活动窗口中获取选定的文本
- 7. 如何从窗口获取文本
- 8. Python - 从窗口获取文本
- 9. 从无窗口控件获取文本
- 10. 从文本框中获取文本
- 11. C#窗口中的文本框中的不可选水印文本代码
- 12. WPF从主窗口文本框中
- 13. 使用tk获取文本的窗口
- 14. 使用Jquery在新窗口中获取文本框的值
- 15. 从c#窗口窗体中的文本文件导入cookie
- 16. 如何从文本框中的文本中获取文件名
- 17. 如何从窗体弹出框的文本框中获取值
- 18. 窗口从文本
- 19. 从另一个UIViewController文本框中获取文本框的值
- 20. 从文本框动态获取文本
- 21. 获取C#中的组合框文本#
- 22. 从文件上传窗口读取文件名到文本框
- 23. 获取文本框文本
- 24. 从文本框(C#)获取价值
- 25. 从文本框获取索引C#
- 26. 不将数据从一个窗口的文本框绑定到另一个窗口的文本框
- 27. 可可获取文本框并从中获取文本
- 28. 无法从中继器中的文本框中获取文本
- 29. 从文本框中获取文本到asp.net中的masterpage中的文本框使用c#
- 30. 从php中获取文本框的值
使用System.OtherApplications.CaptureTextBox!那是不可能的人,更多地解释你为什么要这么做? – 2010-12-14 23:41:59