C# 用于从其他窗口复制文本的代码

C# 用于从其他窗口复制文本的代码,c#,C#,是否可以编写一个代码,从属于另一个应用程序的窗口复制文本值 我有一个应用程序,每5分钟给我一次实时结果(只有文本),我不能每5分钟复制粘贴一次 也许 这取决于目标应用程序如何向操作系统公开其文本 如果应用程序使用私有2D/绘图库将文本自身渲染到内存或VRAM缓冲区中,则不会。您需要抓取屏幕截图并在其上执行OCR,或者您可以将自己的代码注入目标进程,并截取这些2D/绘图库调用以获得渲染的文本 如果应用程序正在使用Windows提供的GDI,那么可以通过拦截这些调用来获取文本。我相信Direct2D

是否可以编写一个代码,从属于另一个应用程序的窗口复制文本值

我有一个应用程序,每5分钟给我一次实时结果(只有文本),我不能每5分钟复制粘贴一次


也许

这取决于目标应用程序如何向操作系统公开其文本

如果应用程序使用私有2D/绘图库将文本自身渲染到内存或VRAM缓冲区中,则不会。您需要抓取屏幕截图并在其上执行OCR,或者您可以将自己的代码注入目标进程,并截取这些2D/绘图库调用以获得渲染的文本

如果应用程序正在使用Windows提供的GDI,那么可以通过拦截这些调用来获取文本。我相信Direct2D和DirectWrite也提供了截取/分析其调用的简单方法

如果应用程序使用的是GUI框架或平台,如WinForms或WPF,则有多种方法可以检查渲染视图的对象模型以提取数据和文本-这就是各种“Spy”实用程序的工作方式。“Spy++”(
spyxx.exe
包含在Visual Studio和Windows SDK中)可以检查本机Win32
hWnd
Windows,并且“”是检查WPF应用程序的非常强大的工具(Visual Studio内置的Visual Inspector也做同样的事情)

此外,GUI框架和平台通常支持操作系统内置的可访问性平台,并将屏幕上的数据作为机器可读的结构化数据公开,供盲人和视力受损者的屏幕阅读器以及自动化软件使用。Windows的内置平台称为。您可以下载一些预制工具来检查活动的辅助功能数据


如果是HTML应用程序(如Windows HTA、Electron应用程序、Chrome桌面应用程序等),则这是另一个主题。

“是否可能…”是。这是否回答了您的问题?不幸的是,没有。我希望代码从另一个应用程序提供的实时列表中复制文本。它需要每10分钟自动完成一次。非常感谢您抽出时间。因此,我运行了spyxx.exe并针对指定的窗口:类名:HwndWrapper[TMain.exe;;e9b5e87f-3be2-4556-baa5-cc269616ef1f]我对编码非常陌生,请原谅我的知识不足。那么下一步是什么?@PeymanJavanbakht
HwndWrapper
表示应用程序可能正在使用
pywinauto
或WPF。根据您发布的屏幕截图判断,它可能使用WPF,因此您可能可以使用Snoop从中获取文本。@PeymanJavanbakht假设它是WPF应用程序,那么您应该能够使用Windows UI自动化API以编程方式获取文本,因为WPF会自动将其DOM公开给Windows:哇,非常感谢,我真的很感激你。我现在就去,谢谢again@PeymanJavanbakht我希望我戴着墨镜能像你一样酷