我可以使用 c# 执行外部控制台程序并通过System.Diagnostics.Process
类获取其输出。
有没有办法执行一个外部程序而不是控制台程序,并获得它的输出?
假设我们有一些“program.exe”,假设它是一个 2D 游戏。是否可以从中获取视频流?例如,在像素阵列中。
对的,这是可能的。使用 Process 类启动流程。您必须知道要捕获的窗口的名称。然后使用 win32 api (pinvoked) FindWindow, GetWindowDC, .. 定期获取位图。这种方法在这里解释: http ://www.nullskull.com/q/10087766/capturewindow-in-cnet-20-windows-application.aspx
另一种方法是捕获屏幕的矩形, 使用 .NET 捕获屏幕截图, 您可以使用 win32 api GetWindowRect 获取窗口的边界矩形